如果请求返回302或303,我需要重定向用户。似乎没有标准的方法来执行此操作(奇怪的是,我认为这是一项非常常见的任务)。
我有这段代码:
var request = new Request({
url: "/some-url/",
method: 'get',
evalScripts: true,
onComplete: function(){
console.log(this.status);
}
});
控制台打印0状态,但是Web检查器显示状态代码为302 Found,因此我无法手动检查代码并重定向。谁知道我做错了什么?
感谢。
答案 0 :(得分:3)
通常,对301/302/303等的ajax请求将遵循新的location
并按照规范重新发出请求。如果你没有看到第二个请求,那就是错误的,比如无限循环或类似的......
更多信息:http://dev.w3.org/2006/webapi/XMLHttpRequest/#infrastructure-for-the-send-method
答案 1 :(得分:2)
我尝试了两种情况(302和303),它遵循规范:用户代理自动重定向到url,在 Location:响应标头中指定。所以,最后console.log(this.status)确实返回200
,但不用担心,因为重定向是由浏览器自动处理的(至少在FF和Chrome中)。
这是firebug控制台: