วิธีแก้ 405 method not allowed ใน Angular มีดังนี้
- ตรวจสอบว่า URL ถูกต้องหรือไม่
- ตรวจสอบว่า HTTP method ที่ส่งไปถูกต้องหรือไม่
- ตรวจสอบว่า route อนุญาต HTTP method นั้นหรือไม่
- ตรวจสอบว่า server อนุญาต HTTP method นั้นหรือไม่
หาก URL ถูกต้องและ HTTP method ที่ส่งไปถูกต้อง แต่ route หรือ server ไม่อนุญาต HTTP method นั้น จะเกิดข้อผิดพลาด 405 method not allowed
ตัวอย่างการแก้ 405 method not allowed
สมมติว่าเรามี route ดังนี้
1 | const routes: Routes = [ |
หากเราพยายามส่ง HTTP method POST ไปที่ route นี้ ระบบจะเกิดข้อผิดพลาด 405 method not allowed เนื่องจาก route นี้อนุญาตเฉพาะ HTTP method GET
วิธีแก้คือแก้ไข route นี้ให้อนุญาต HTTP method POST ด้วย ตัวอย่างเช่น
1 | const routes: Routes = [ |
หลังจากแก้ไข route แล้ว เราสามารถส่ง HTTP method POST ไปที่ route นี้ได้ตามปกติ
วิธีแก้ 405 method not allowed แบบละเอียด
หากเกิดข้อผิดพลาด 405 method not allowed เราสามารถตรวจสอบสาเหตุของข้อผิดพลาดได้ดังนี้
- ตรวจสอบ URL ถูกต้องหรือไม่
หาก URL ผิด ระบบจะไม่สามารถค้นหาทรัพยากรที่ผู้ใช้ต้องการได้ ส่งผลให้เกิดข้อผิดพลาด 404 page
เราสามารถตรวจสอบ URL ได้โดยเปิดเบราว์เซอร์ไปที่ URL นั้น หากเบราว์เซอร์แสดงหน้า 404 page แสดงว่า URL ผิด
- ตรวจสอบว่า HTTP method ที่ส่งไปถูกต้องหรือไม่
HTTP method ที่ใช้ส่งข้อมูลไปยัง server จะต้องตรงกับ HTTP method ที่ route อนุญาต
เราสามารถตรวจสอบ HTTP method ที่ใช้ส่งข้อมูลได้โดยตรวจสอบ headers ของ HTTP request
- ตรวจสอบว่า route อนุญาต HTTP method นั้นหรือไม่
route กำหนดว่า HTTP method ใดบ้างที่อนุญาตให้ใช้กับทรัพยากรนั้น
เราสามารถตรวจสอบว่า route อนุญาต HTTP method นั้นหรือไม่ได้โดยตรวจสอบ attribute methods
ใน route
- ตรวจสอบว่า server อนุญาต HTTP method นั้นหรือไม่
นอกจาก route แล้ว server เองก็อาจกำหนดว่า HTTP method ใดบ้างที่อนุญาตให้ใช้กับทรัพยากรนั้น
เราสามารถตรวจสอบว่า server อนุญาต HTTP method นั้นหรือไม่ได้โดยตรวจสอบ configuration ของ server
หากตรวจสอบแล้วพบว่า URL ถูกต้องและ HTTP method ที่ส่งไปถูกต้อง แต่ route หรือ server ไม่อนุญาต HTTP method นั้น เราสามารถแก้ไข route หรือ server ให้อนุญาต HTTP method นั้นได้ตามต้องการ