การสร้างเว็บไคลเอ็นต์ใน Dart

ฉันเริ่มต้นด้วย Dart และฉันต้องการสร้างแอปเพื่อส่งคำขอ http ไปยังหน้าเว็บและอาจแปลงเป็นส่วนขยายของ Chrome ทั้งหมดนี้ด้วย Dart

ปัญหาที่ฉันมีคือฉันไม่รู้วิธีส่ง HttpRequest ไปที่หน้านี้ "http://www.1001tracklists.com/" เพื่อดึงเนื้อหา html จากนั้นจัดระเบียบเซสชันทั้งหมดในแอปของฉันด้วย html และ css

สิ่งที่ฉันได้ลองทั้งหมดคือสร้าง HttpRequest ปกติ แต่ฉันได้รับข้อผิดพลาดเนื่องจากคำขอ CORS และฉันไม่รู้ว่าจะแก้ไขปัญหาเกี่ยวกับส่วนหัวได้อย่างไร


person ELKOKACOLO    schedule 24.12.2013    source แหล่งที่มา


คำตอบ (3)


เซิร์ฟเวอร์จะต้องทำการแก้ไขเพื่อรวมส่วนหัว CORS เพื่ออนุญาตการร้องขอระยะไกลเพื่อสืบค้นทรัพยากรจากเซิร์ฟเวอร์ของตน

เบราว์เซอร์สมัยใหม่ส่วนใหญ่ (ทั้งหมด?) จะรวม CORS ไว้โดยอัตโนมัติ ดังนั้นคำขอใดๆ จากเบราว์เซอร์เหล่านี้จะสร้างส่วนหัว Origin: ในคำขอโดยอัตโนมัติ หากเซิร์ฟเวอร์ที่รับไม่มีส่วนหัว Access-Control-Allow-Origin: ซึ่งจะตรงกับ Origin ของคุณ คำขอจะล้มเหลว

อีกทางเลือกหนึ่งคือการให้สคริปต์บนเซิร์ฟเวอร์ของคุณค้นหาข้อมูลและคุณสำรวจเซิร์ฟเวอร์ของคุณเองเพื่อดึงข้อมูล ดูข้อกำหนด CORS สำหรับรายละเอียดเพิ่มเติม

person Matt B    schedule 24.12.2013
comment
แม้ว่าในกรณีทั่วไปจะเป็นจริง แต่คำถามที่เกี่ยวข้องกับ Google Chrome Extension เปลี่ยนแปลงสิ่งต่าง ๆ อย่างมาก (ดูที่ คำตอบของ Zig Mandel) - person gkalpak; 25.12.2013

ด้วยส่วนขยายของ Chrome คุณสามารถข้าม Cors ได้โดยระบุ URL ที่คุณต้องการเข้าถึงในรายการของคุณ ลองค้นหาในส่วนขยายของ Chrome ดู: http://developer.chrome.com/extensions/declare_permissions.html

person Zig Mandel    schedule 24.12.2013

คุณต้องเพิ่มส่วนหัว CORS ดังข้างต้นหากคุณสามารถควบคุมฝั่งเซิร์ฟเวอร์ของคุณได้ หรือตั้งค่า apache/nginx ให้ทำสิ่งนี้ให้คุณในฐานะพร็อกซีย้อนกลับ หรือคุณต้องการเข้าถึงพร็อกซีเซิร์ฟเวอร์ CORS

ดูที่นี่ เพื่อดูว่าสิ่งนี้จะช่วยคุณได้หรือไม่

person user2685314    schedule 24.12.2013