Câu trả lời:
Điều gì xảy ra nếu trình duyệt nhận được phản hồi chuyển hướng đến yêu cầu ajax?
Nếu máy chủ gửi chuyển hướng (còn gọi là phản hồi 302 cộng với tiêu đề Location:) thì chuyển hướng sẽ tự động theo sau bởi trình duyệt. Phản hồi cho yêu cầu thứ hai (giả sử nó cũng không phải là một chuyển hướng khác) là những gì được đưa ra cho chương trình của bạn.
Thực tế, bạn không có khả năng phát hiện xem phản hồi 302 có xảy ra hay không. Nếu chuyển hướng 302 dẫn đến 200, thì chương trình của bạn hoạt động giống hệt như yêu cầu ban đầu dẫn trực tiếp đến 200.
Đây là cả kinh nghiệm của tôi và hành vi được gọi ra trong thông số kỹ thuật .
Cập nhật năm 2016: Thời gian đã trôi qua và tin vui là API tìm nạp mới () được cung cấp để kiểm soát chi tiết hơn về cách xử lý các chuyển hướng , với hành vi mặc định tương tự như XHR. Điều đó nói rằng, nó chỉ hoạt động khi fetch () được thực hiện nguyên bản . Các phiên bản polyfill của fetch () đã được dựa trên XHR, tiếp tục có những hạn chế của XHR . May mắn thay, hỗ trợ trình duyệt riêng dường như được làm tròn độc đáo.
Các ajax-request
sẽ làm theo mà chuyển hướng afaik. Nội dung thực tế ( .responseText
, .responseXML
) sẽ là nội dung từ trang bạn được chuyển hướng đến.
Bạn có thể chặn chuyển hướng ( status-code
, location-header
) trên readyState
2 hoặc 3, nhưng không chắc chắn về điều đó.
getAllResponseHeaders()
là bằng nhau.