ใช้ CORS ใน .NET Core 2.0

ปัญหาเวลาทำ frontend กับ backend แยกออกจากกันคือ ถ้าทั้ง 2 ฝั่งอยู่คนละ domain ไม่ว่าจะคนละ subdomain คนละ port หรือ คนละ scheme (เช่น http กับ https) ก็ตาม จะเจอปัญหาเรื่อง cross origin ซึ่งเกิดจากที่ตัวบราวเซอร์เองไม่อนุญาตให้ใช้ ajax เรียกเนื้อหาที่อยู่บน domain อื่น เรียกว่า same-origin policy เพื่อป้องกันการเข้าถึงข้อมูลที่สำคัญข้าม domain กัน

วิธีหนึ่งที่สามารถแก้ได้คือ เอา reverse proxy มาคั่นกลาง แล้วทำให้ backend มาใช้ domain เดียวกันกับ frontend แต่ถ้าไม่สามารถทำแบบนี้ได้ ก็มีอีกวิธีคือการกำหนดที่ backend ให้เปิดรับ request จาก origin ที่ต้องการ เรียกว่า Cross Origin Resource Sharing หรือ CORS

อ่านต่อ »