นโยบายต้นทางเดียวกันและคำขอดึงข้อมูล

Mariko Kosaka

ในโค้ดแล็บนี้ ให้ดูว่าต้นทางเดียวกันทำงานอย่างไรเมื่อดึงข้อมูลทรัพยากร

ตั้งค่า: ดึงข้อมูลหน้าเว็บจากต้นทางเดียวกัน

เดโมนี้โฮสต์อยู่ที่ https://same-origin-policy-fetch.glitch.me หน้าเว็บง่ายๆ นี้ใช้ fetch เพื่อโหลดทรัพยากรจาก https://same-origin-policy-fetch.glitch.me/fetch.html เนื่องจาก index.html และ fetch.html มีต้นทางเดียวกัน คุณจึงควรเห็น 200 แสดงในตัวอย่างแบบเรียลไทม์

1. ดึงข้อมูลหน้าเว็บจากต้นทางอื่น

ลองเปลี่ยน URL ดึงข้อมูลเป็น https://www.google.com คุณเห็นอะไรในตัวอย่างแบบเรียลไทม์

เบราว์เซอร์ควรบล็อกคำขอดึงข้อมูลเนื่องจากคุณขอทรัพยากรจากต้นทางอื่น ซึ่งหมายความว่าผู้โจมตีจะอ่านทรัพยากรข้ามแหล่งที่มาไม่ได้ แม้ว่าจะควบคุมเบราว์เซอร์ของผู้ใช้ก็ตาม

2. ดึงข้อมูลทรัพยากรข้ามโดเมน

ลองเปลี่ยน URL ดึงข้อมูลเป็น https://api.thecatapi.com/v1/images/search คุณเห็นอะไรในตัวอย่างแบบเรียลไทม์

URL ที่ใช้ดึงข้อมูลเป็นต้นทางอื่น แต่คุณควรเห็นรหัสสถานะ 200 เหตุผล เว็บแอปพลิเคชันสมัยใหม่มักขอทรัพยากรข้ามแหล่งที่มาเพื่อโหลดสคริปต์ของบุคคลที่สามหรือค้นหาปลายทาง API ด้วยเหตุนี้ จึงมีกลไกที่เรียกว่า CORS (Cross Origin Resource Sharing) เพื่อบอกเบราว์เซอร์ว่าอนุญาตให้โหลดทรัพยากรข้ามโดเมน ดูข้อมูลเพิ่มเติมเกี่ยวกับ CORS ได้ที่หัวข้อแชร์ทรัพยากรข้ามโดเมนอย่างปลอดภัย