Mootools:如果ajax请求返回重定向代码,如何重定向?

Mootools:如果ajax请求返回重定向代码,如何重定向?,ajax,redirect,mootools,Ajax,Redirect,Mootools,如果请求返回302或303,我需要重定向用户。似乎没有一个标准的方法来做这件事(奇怪的是,我认为这是一个很常见的任务) 我有以下代码: var request = new Request({ url: "/some-url/", method: 'get', evalScripts: true, onComplete: function(){ console.log(this.status);

如果请求返回302或303,我需要重定向用户。似乎没有一个标准的方法来做这件事(奇怪的是,我认为这是一个很常见的任务)

我有以下代码:

var request = new Request({
        url: "/some-url/",
        method: 'get',
        evalScripts: true,
        onComplete: function(){
            console.log(this.status);
        }
    });
Console打印0状态,但web inspector显示状态代码为302 Found,因此我无法手动检查代码并重定向。有人知道我做错了什么吗

谢谢。

我尝试了这两种情况(302和303),它遵循规范:用户代理自动重定向到url,在响应的位置:标题中指定。所以,最后console.log(this.status)确实返回
200
,但不用担心,因为重定向是由浏览器自动处理的(至少在FF和Chrome中是这样)

这是firebug控制台:

我尝试了这两种情况(302和303),它遵循规范:用户代理自动重定向到url,在响应的Location:header中指定。所以,最后console.log(this.status)确实返回
200
,但不用担心,因为重定向是由浏览器自动处理的(至少在FF和Chrome中是这样)

这是firebug控制台:


通常,对301/302/303 etc的ajax请求将跟随新的
位置
,并根据规范重新发出请求。如果您没有看到第二个请求,则说明出现了问题,如无限循环或类似情况


更多信息:

通常,对301/302/303 etc的ajax请求将跟随新的
位置
,并根据规范重新发出请求。如果您没有看到第二个请求,则说明出现了问题,如无限循环或类似情况


更多信息:

我看到了这个()。0是console.log(this.status)结果。我在上面的代码中看到,您实际上并没有发送请求<代码>变量请求=新请求({})和no.send();它在那里吗?:)为了澄清问题,请展示发送请求的实际代码,可能还有生成响应头或头本身的部分。谢谢您的回答。代码看起来没问题。正如在对其他答案的评论中所说,网络活动需要检查。Net选项卡。正如Dimitar Christoff在上一篇评论中所说,问题在于跨域引用。复制了错误。我看到这个()。0是console.log(this.status)结果。我在上面的代码中看到,您实际上并没有发送请求<代码>变量请求=新请求({})和no.send();它在那里吗?:)为了澄清问题,请展示发送请求的实际代码,可能还有生成响应头或头本身的部分。谢谢您的回答。代码看起来没问题。正如在对其他答案的评论中所说,网络活动需要检查。Net选项卡。正如Dimitar Christoff在上一篇评论中所说,问题在于跨域引用。复制了错误。我的案例中没有无限循环,我已再次检查。1) 我不明白为什么这个.status打印0和2)你的意思是没有办法让浏览器遵循来自ajax请求的重定向吗?不,相反,阻止浏览器遵循重定向不是正常行为。。。就这样发生了!这是关于这个主题的另一篇文章:-所以问题是,是什么打破了你的重定向链。看看你的xhr和回复,然后把它们放在这里展开…重点是,一个301到同一个url(例如)会创建一个无限循环。这将打破链条,因为XHR将试图避免它。另外,重定向到不同的协议(https->http,反之亦然)也不起作用。呃,您的302是到另一个域的。这
确实打破了这里提到的同源策略规则:哦,那么我们可以通过重定向到相同的域url来绕过这一点吗?在我的例子中没有无限循环,我再次检查了。1) 我不明白为什么这个.status打印0和2)你的意思是没有办法让浏览器遵循来自ajax请求的重定向吗?不,相反,阻止浏览器遵循重定向不是正常行为。。。就这样发生了!这是关于这个主题的另一篇文章:-所以问题是,是什么打破了你的重定向链。看看你的xhr和回复,然后把它们放在这里展开…重点是,一个301到同一个url(例如)会创建一个无限循环。这将打破链条,因为XHR将试图避免它。另外,重定向到不同的协议(https->http,反之亦然)也不起作用。呃,您的302是到另一个域的。这
是否违反了此处提到的同源策略规则:哦,那么我们是否可以通过重定向到将重定向到所需url的相同域url来规避此问题?