Inertia จัดการปัญหา CORS (การแบ่งปันทรัพยากรข้ามแหล่งกำเนิด) โดยใช้ประโยชน์จากการสนับสนุนในตัวของเฟรมเวิร์กฝั่งเซิร์ฟเวอร์สำหรับ CORS เนื่องจาก Inertia ใช้โดเมนเดียวกันสำหรับทั้งฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ CORS จึงไม่ใช่ข้อกังวลที่สำคัญ นี่คือประเด็นสำคัญ:
1. การสนับสนุนกรอบงานฝั่งเซิร์ฟเวอร์:
- ความเฉื่อยใช้เฟรมเวิร์กฝั่งเซิร์ฟเวอร์เดียวกันกับฝั่งไคลเอ็นต์ ซึ่งหมายความว่าเฟรมเวิร์กฝั่งเซิร์ฟเวอร์จัดการ CORS สำหรับความเฉื่อย ตัวอย่างเช่น Laravel ให้การสนับสนุน CORS ในตัว ทำให้ง่ายต่อการกำหนดค่า CORS สำหรับแอปพลิเคชัน Inertia[1][3][5]
2. ไม่มีการกำหนดค่า CORS แยกต่างหาก:
- ต่างจาก API ทั่วไปตรงที่ Inertia ไม่ต้องการการกำหนดค่า CORS แยกต่างหาก สิ่งนี้ทำให้กระบวนการง่ายขึ้นและลดความซับซ้อนในการจัดการ CORS[3][5]
3. การตรวจสอบสิทธิ์ในตัว:
- Inertia ใช้ระบบการตรวจสอบสิทธิ์ในตัวของเฟรมเวิร์กฝั่งเซิร์ฟเวอร์ ซึ่งไม่จำเป็นต้องใช้ระบบการตรวจสอบสิทธิ์พิเศษ เช่น OAuth นอกจากนี้ยังหมายความว่า CORS ไม่ได้เป็นปัญหาสำหรับการตรวจสอบสิทธิ์ เนื่องจากระบบการตรวจสอบความถูกต้องได้รับการจัดการบนฝั่งเซิร์ฟเวอร์[5]
4. การพัฒนาแบบง่าย:
- แนวทาง CORS ของ Inertia ช่วยลดความซับซ้อนของกระบวนการพัฒนาโดยขจัดความจำเป็นในการกำหนดค่าและการจัดการ CORS เพิ่มเติม ช่วยให้นักพัฒนามุ่งความสนใจไปที่การสร้างแอปพลิเคชันได้โดยไม่ต้องกังวลกับปัญหา CORS[3][5]
โดยรวมแล้ว การใช้โดเมนเดียวกันของ Inertia สำหรับทั้งฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ รวมกับการสนับสนุน CORS ในตัวของเฟรมเวิร์กฝั่งเซิร์ฟเวอร์ ทำให้ง่ายต่อการจัดการปัญหา CORS โดยไม่ต้องกำหนดค่าเพิ่มเติม
การอ้างอิง:[1] https://laracasts.com/discuss/channels/vue/inertiavue-cors
[2] https://peterbabic.dev/blog/cors-problems-with-inertiajs-and-browsersync/
[3] https://blog.logrocket.com/introduction-to-inertia-js/
[4] https://laracasts.com/discuss/channels/laravel/laravel-9-vite-inertiajs-cors-issue-on-droplet
[5] https://inertiajs.com/authentication