在Ajax
调用
过程中,通过使用HTTP重定向(302)可以实现跳转到另一个URL。在JavaS
cr
i
pt
中,可以通过X
ML
HttpRequest对象的responseURL属性获取重定向后的URL。
下面是一个使用HTTP重定向(302)的Ajax
调用
示例:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://example.com/redirect', true);
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
// 请求成功
console.log(xhr.responseText);
} else if (xhr.status === 302) {
// 重定向
var redirectedUrl = xhr.responseURL;
console.log('重定向到:' + redirectedUrl);
// 可以继续发送新请求到重定向后的URL
var redirectedXhr = new XMLHttpRequest();
redirectedXhr.open('GET', redirectedUrl, true);
redirectedXhr.onreadystatechange = function() {
if (redirectedXhr.readyState === XMLHttpRequest.DONE && redirectedXhr.status === 200) {
console.log(redirectedXhr.responseText);
redirectedXhr.send();
xhr.send();
以上代码中,我们发送了一个GET请求到'http://example.com/redirect',如果服务器返回状态码为200,则请求成功,可以获取返回的数据。如果服务器返回状态码为302,则表示重定向,我们可以通过xhr.responseURL获取重定向后的URL,并使用XMLHttpRequest发送新的请求到该URL获取数据。
请注意,在跨域请求中,浏览器会限制通过XMLHttpRequest对象获取重定向后的URL,因此可以考虑使用服务器端进行重定向,并将重定向后的URL作为响应返回给客户端。