วิธีแก้ 405 method not allowed ใน angular

วิธีแก้ 405 method not allowed ใน Angular มีดังนี้

  1. ตรวจสอบว่า URL ถูกต้องหรือไม่
  2. ตรวจสอบว่า HTTP method ที่ส่งไปถูกต้องหรือไม่
  3. ตรวจสอบว่า route อนุญาต HTTP method นั้นหรือไม่
  4. ตรวจสอบว่า server อนุญาต HTTP method นั้นหรือไม่

หาก URL ถูกต้องและ HTTP method ที่ส่งไปถูกต้อง แต่ route หรือ server ไม่อนุญาต HTTP method นั้น จะเกิดข้อผิดพลาด 405 method not allowed

ตัวอย่างการแก้ 405 method not allowed

สมมติว่าเรามี route ดังนี้

1
2
3
4
5
6
7
const routes: Routes = [
{
path: '/users',
component: UsersComponent,
methods: ['GET']
}
];

หากเราพยายามส่ง HTTP method POST ไปที่ route นี้ ระบบจะเกิดข้อผิดพลาด 405 method not allowed เนื่องจาก route นี้อนุญาตเฉพาะ HTTP method GET

วิธีแก้คือแก้ไข route นี้ให้อนุญาต HTTP method POST ด้วย ตัวอย่างเช่น

1
2
3
4
5
6
7
const routes: Routes = [
{
path: '/users',
component: UsersComponent,
methods: ['GET', 'POST']
}
];

หลังจากแก้ไข route แล้ว เราสามารถส่ง HTTP method POST ไปที่ route นี้ได้ตามปกติ

วิธีแก้ 405 method not allowed แบบละเอียด

หากเกิดข้อผิดพลาด 405 method not allowed เราสามารถตรวจสอบสาเหตุของข้อผิดพลาดได้ดังนี้

  1. ตรวจสอบ URL ถูกต้องหรือไม่

หาก URL ผิด ระบบจะไม่สามารถค้นหาทรัพยากรที่ผู้ใช้ต้องการได้ ส่งผลให้เกิดข้อผิดพลาด 404 page

เราสามารถตรวจสอบ URL ได้โดยเปิดเบราว์เซอร์ไปที่ URL นั้น หากเบราว์เซอร์แสดงหน้า 404 page แสดงว่า URL ผิด

  1. ตรวจสอบว่า HTTP method ที่ส่งไปถูกต้องหรือไม่

HTTP method ที่ใช้ส่งข้อมูลไปยัง server จะต้องตรงกับ HTTP method ที่ route อนุญาต

เราสามารถตรวจสอบ HTTP method ที่ใช้ส่งข้อมูลได้โดยตรวจสอบ headers ของ HTTP request

  1. ตรวจสอบว่า route อนุญาต HTTP method นั้นหรือไม่

route กำหนดว่า HTTP method ใดบ้างที่อนุญาตให้ใช้กับทรัพยากรนั้น

เราสามารถตรวจสอบว่า route อนุญาต HTTP method นั้นหรือไม่ได้โดยตรวจสอบ attribute methods ใน route

  1. ตรวจสอบว่า server อนุญาต HTTP method นั้นหรือไม่

นอกจาก route แล้ว server เองก็อาจกำหนดว่า HTTP method ใดบ้างที่อนุญาตให้ใช้กับทรัพยากรนั้น

เราสามารถตรวจสอบว่า server อนุญาต HTTP method นั้นหรือไม่ได้โดยตรวจสอบ configuration ของ server

หากตรวจสอบแล้วพบว่า URL ถูกต้องและ HTTP method ที่ส่งไปถูกต้อง แต่ route หรือ server ไม่อนุญาต HTTP method นั้น เราสามารถแก้ไข route หรือ server ให้อนุญาต HTTP method นั้นได้ตามต้องการ