Backbone.js全局错误处理

Eug*_*lov 12 javascript jquery backbone.js

我正在编写网站,使用Backbone.js作为Web前端,并为API后端使用自己的RESTful服务器.我的API(RESTful)服务器需要手动授权,并且需要"授权"标头中的安全令牌.如果安全令牌被弃用或损坏,API服务器将返回带有401状态代码的响应.我重写Backbone.sync以发送带有请求的附加标头并返回options.error(jqXHR.status)AJAX错误.

如何添加全局错误事件侦听器来处理options.error(...)失败的资源加载事件?我需要它来使导航重定向到响应/#!/signin页面401 Unauthorized.

sle*_*led 10

您可以尝试使用jQuery Global Ajax事件处理程序:

http://api.jquery.com/category/ajax/global-ajax-event-handlers/

您只需将.ajaxError事件绑定到正文或应用程序元素并过滤401状态代码即可.

在401错误上,您重定向您的应用程序,如 window.yourAppRouter.navigate(...)

  • 问题是你的同步类不知道你的应用程序及其路由器.同步类无法直接重定向用户.另一种方法可能是覆盖Sync并为401添加错误处理程序.如果发生401错误,它会触发自定义事件,如'sync:denied',您的应用程序会捕获此事件并将用户重定向到signin. (4认同)