2011-11-08 34 views
13

Có một trang (url), tôi yêu cầu nó bằng XMLHttpRequest, nhưng tôi không nhận được phản hồi từ url yêu cầu, Nó chỉ đạo yêu cầu đến một trang khác,Cách nhận url phản hồi trong XMLHttpRequest?

yêu cầu --->page.php
nhận phản hồi từ>directedpage.php

và câu hỏi là làm thế nào tôi có thể nhận được url phản hồi? (directpage.php chẳng hạn)

Trả lời

24

URL cuối cùng (sau khi theo tất cả chuyển hướng) có sẵn trong responseURL attribute của phiên bản XMLHttpRequest. Tính năng này mới và chỉ được hỗ trợ trong Firefox 32 ổn định vào tháng 9 năm 2014 [ref] và Chrome 37.0.2031.0 ổn định vào tháng 8 năm 2014 [ref] (và có thể cả Opera 24). responseURL chưa được hỗ trợ trong IE 11 hoặc Safari 7 và các trình duyệt cũ hơn. Đối với các trình duyệt này, câu trả lời trước đó vẫn đúng:

XMLHttpRequest tự động theo chuyển hướng mà không lưu URL được phân phối trong thuộc tính. Không thể truy xuất tiêu đề Location qua .getResponseHeader().

Tài liệu tham khảo:

+0

OK, nhưng, không ai biết tại sao? Bảo vệ ? Cuộc tấn công nào sẽ có sẵn với url phản hồi? (Chỉ cung cấp url phản hồi nếu url phản hồi có cùng nguồn gốc so với url gốc) –

+0

@JulienPalard [Đặc điểm kỹ thuật] (http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send() -method) yêu cầu chuyển hướng phải được theo dõi một cách minh bạch. –

+0

@RobW: Tôi không hiểu, nếu tôi có điều này'A = 302 — B = 302—> C = 302—> A = 200'. ResponseURL nào sẽ trả về? ᴜʀʟ của C hoặc A? – user2284570

Các vấn đề liên quan