最后,我想捕获302错误并重定向到我的登录页面,但是现在xhr.status的状态代码是200.
这是我目前的代码:
parentSyncMethod = Backbone.sync
Backbone.sync = (method, model, options) ->
old_error = options.old_error
options.error = (xhr, text_status, error_thrown) ->
if(xhr.status == 302)
window.location.replace('http://localhost:8080/login')
else
old_error?(xhr, text_status, error_thrown)
parentSyncMethod(method, model, options)
基本上我认为问题是当前网页抛出了200错误,但抛出302的那个被包裹起来而没有传播到xhr.status。有没有办法从所有get,post,put等调用中获取所有状态代码响应?
答案 0 :(得分:5)
浏览器会自动重定向302响应代码,因此您将无法捕获该响应。您的处理程序只会在数据从重定向到的URL返回时运行。
我要说的是,不是在这里使用302,你可能只需要返回200并让响应数据信号以自己的方式重定向。