backbone.sync获取所有响应错误状态代码

时间:2012-04-20 15:43:00

标签: javascript backbone.js http-status-code-302

最后,我想捕获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等调用中获取所有状态代码响应?

1 个答案:

答案 0 :(得分:5)

浏览器会自动重定向302响应代码,因此您将无法捕获该响应。您的处理程序只会在数据从重定向到的URL返回时运行。

我要说的是,不是在这里使用302,你可能只需要返回200并让响应数据信号以自己的方式重定向。