จะเกิดอะไรขึ้นหากเบราว์เซอร์ได้รับการตอบกลับการเปลี่ยนเส้นทางไปยังคำขอ ajax
จะเกิดอะไรขึ้นหากเบราว์เซอร์ได้รับการตอบกลับการเปลี่ยนเส้นทางไปยังคำขอ ajax
คำตอบ:
จะเกิดอะไรขึ้นหากเบราว์เซอร์ได้รับการตอบกลับการเปลี่ยนเส้นทางไปยังคำขอ ajax
หากเซิร์ฟเวอร์ส่งการเปลี่ยนเส้นทาง (หรือการตอบสนอง 302 บวกกับส่วนหัว Location:) การเปลี่ยนเส้นทางจะถูกตามด้วยเบราว์เซอร์โดยอัตโนมัติ การตอบสนองต่อคำขอที่สอง (สมมติว่าไม่ใช่การเปลี่ยนเส้นทางอื่น) คือสิ่งที่โปรแกรมของคุณเปิดเผย
ที่จริงแล้วคุณไม่มีความสามารถในการตรวจสอบว่ามีการตอบสนอง 302 ครั้งหรือไม่ หากการเปลี่ยนเส้นทาง 302 นำไปสู่ 200 โปรแกรมของคุณจะทำงานเหมือนกันกับคำขอต้นฉบับที่นำไปสู่ 200 โดยตรง
นี้ได้รับทั้งประสบการณ์และฉันพฤติกรรมที่เรียกว่าออกมาในสเปค
อัปเดตปี 2559:เวลาผ่านไปแล้วและข่าวดีก็คือข้อมูลจำเพาะการดึงข้อมูลใหม่() APIจะให้การควบคุมที่ละเอียดยิ่งขึ้นเกี่ยวกับวิธีจัดการการเปลี่ยนเส้นทางโดยมีพฤติกรรมเริ่มต้นคล้ายกับ XHR ที่กล่าวว่ามันจะทำงานเฉพาะที่สามารถดึงข้อมูล () จะดำเนินการโดยกำเนิด รุ่น Polyfill ของสามารถดึงข้อมูล () -which จะขึ้นอยู่กับ XHR- ยังคงมีข้อ จำกัด ของ XHR โชคดีที่การสนับสนุนเบราว์เซอร์แบบดั้งเดิมดูเหมือนจะเป็นการปัดเศษอย่างดี
ajax-request
จะเป็นไปตามที่เปลี่ยนเส้นทาง AFAIK เนื้อหาจริง ( .responseText
, .responseXML
) จะเป็นเนื้อหาจากหน้าเว็บที่คุณเปลี่ยนเส้นทางไป
คุณอาจขัดขวางการเปลี่ยนเส้นทาง ( status-code
, location-header
) ในวันที่readyState
2 หรือ 3 แต่ไม่แน่ใจ
getAllResponseHeaders()
เท่ากัน