Có cách nào để nhận URL bạn cuối cùng được chuyển hướng đến khi phản hồi yêu cầu xhr là 301 không?
Tôi có trang web chứa nhiều URL cũ từ phiên bản cũ hơn, trả về 301 câu trả lời cho URL mới chính xác.
Vì mục đích tiện ích, tôi muốn có thể gửi yêu cầu tới URL cũ và có thể truy xuất URL mới, tức là gửi yêu cầu tới "/oldpage.aspx?foo=someParam", lấy lại url "/ arbitaryNewPageName/someParam".
Tôi đã chơi xung quanh với điều này trong bảng điều khiển firebug:
$.ajax({
url: "/oldpage.aspx?foo=someParam",
success: function(response, status, jqxhr){
//poking around, trying to get the new URL, "/arbitraryNewPage/someParam"
console.log(jqxhr.getAllResponseHeaders());
console.log(jqxhr);
},
beforeSend: function(jqxhr, settings){
console.log(jqxhr);
console.log(settings);
}
});
tôi có thể nhìn thấy trong firebug rằng khi mã này chạy, nó làm một GET để "/oldpage.aspx?foo=someParam" và nhận được phản hồi 301, sau đó chọn GET khác để "/ arbitaryNewPageName/someParam".
Đối với yêu cầu đầu tiên, tôi thấy URL được chuyển hướng trong giá trị Vị trí của tiêu đề phản hồi. Thật không may, yêu cầu thứ hai là những gì được chuyển đến hàm $ .ajax.success và nó chỉ có URL được chuyển hướng trong giá trị Liên kết giới thiệu của tiêu đề yêu cầu.
Có cách nào để chặn phản hồi cho câu trả lời đầu tiên hoặc có thể thấy tiêu đề yêu cầu cho yêu cầu thứ hai không?
Chỉnh sửa: Cảm ơn mọi người đã trả lời. Tôi nghĩ tôi cần đưa ra một chút nền tảng để làm rõ chính xác những gì tôi đang tìm kiếm.
Một người dùng doanh nghiệp đã yêu cầu tôi tạo danh sách liên kết URL cũ với URL mới. Vì tôi đã triển khai phương tiện chuyển hướng URL cũ sang URL mới trên máy chủ, tôi hy vọng sẽ khôi phục công việc đó và tạo tập lệnh đặt yêu cầu cho URL cũ và nhận URL mà yêu cầu được chuyển hướng đến. Một cái gì đó như thế này:
for (var i = 0; i < arrayOfLegacyUrls.length; i++)
{
$.ajax({
url: arrayOfLegacyUrls[i],
success: function(response, status, jqxhr){
var newUrl = "???"; //do magic to get URL that request was redirected to
writeToFileForBusinessUser(arrayOfLegacyUrls[i], newUrl);
}
});
}
Điểm mấu chốt của câu hỏi của tôi là thế này: Tôi có thể có được URL yêu cầu của tôi được chuyển đến từ XHR? Cho đến nay, câu trả lời có vẻ là "không".
Bạn có thể muốn đọc bài này: http://stackoverflow.com/a/1534662/64741 – Zachary
thể trùng lặp của [Xác định những gì jQuery .ajax() giải quyết một chuỗi chuyển hướng to] (http://stackoverflow.com/questions/6767618/determining-what-jquery-ajax-resolves-a-string-of-redirects-to) – JAAulde