การแก้ 415 unsupported media type ใน angular

วิธีแก้ 415 unsupported media type ใน Angular มีดังนี้

  1. ตรวจสอบว่า Content-Type ของ HTTP request ถูกต้องหรือไม่
  2. ตรวจสอบว่า server อนุญาต Content-Type นั้นหรือไม่

หาก Content-Type ของ HTTP request ไม่ถูกต้องหรือ server ไม่อนุญาต Content-Type นั้น จะเกิดข้อผิดพลาด 415 unsupported media type

ตัวอย่างการแก้ 415 unsupported media type

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

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

หากเราพยายามส่ง HTTP request POST ไปที่ route นี้ด้วย Content-Type ที่ไม่ได้เป็น JSON ระบบจะเกิดข้อผิดพลาด 415 unsupported media type เนื่องจาก route นี้อนุญาตเฉพาะ Content-Type JSON

วิธีแก้คือแก้ไข HTTP request ให้ใช้ Content-Type JSON หรือแก้ไข route ให้อนุญาต Content-Type อื่นๆ ด้วย ตัวอย่างเช่น

แก้ไข HTTP request

1
2
3
4
5
6
7
8
9
10
11
// เปลี่ยน Content-Type เป็น application/json

const headers = new Headers();
headers.append('Content-Type', 'application/json');

// ส่ง HTTP request

const request = new XMLHttpRequest();
request.open('POST', '/users');
request.setRequestHeaders(headers);
request.send();

แก้ไข route

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

วิธีแก้ 415 unsupported media type แบบละเอียด

หากเกิดข้อผิดพลาด 415 unsupported media type เราสามารถตรวจสอบสาเหตุของข้อผิดพลาดได้ดังนี้

  1. ตรวจสอบว่า Content-Type ของ HTTP request ถูกต้องหรือไม่

Content-Type ของ HTTP request จะต้องตรงกับ Content-Type ที่ server อนุญาต

เราสามารถตรวจสอบ Content-Type ของ HTTP request ได้โดยตรวจสอบ headers ของ HTTP request

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

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

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

หากตรวจสอบแล้วพบว่า Content-Type ของ HTTP request ไม่ถูกต้องหรือ server ไม่อนุญาต Content-Type นั้น เราสามารถแก้ไข HTTP request หรือ server ให้ถูกต้องได้ตามต้องการ