在我的基于Backbone.js的应用程序中,我正在与我的API交谈,如果底层请求没有或使用无效的身份验证令牌,则会与401响应。我想通过导航到#login页面来检测,每次收到401。如何在基于Backbone.js的应用程序中干净地获取401
要取回401我成功地包装Backbone.sync,但在那一点上,我得到了一种卡住。我尝试了几种策略在这里:
throw 'unauthorized'
下来骨干::同步并尝试在我的路由器来弥补。 '未经授权'试图在Backbone :: sync中尝试
#.navigate '#login'
,这不仅看起来很奇怪,而且伴随着我的应用程序基于AMD/require.js的问题,而且我无法简单地访问我的主干.Router实例在我的包装sync
功能下。
我看到迄今唯一的解决办法是建立一个“全球可用的”缓存对象,即获得一个参考我的路由器实例,并又投入define
因为需要它的依赖。该缓存对象必须是单例,并打破了我的整个'请不要全局名称空间'策略。
我有点卡在这里。任何人都可以指出我对这个常见问题的更清晰的解决方案吗?
Undestood。我可以做同样的window.location = ...同步我获取该响应。好主意。我认为一个干净的方法,我不得不使用路由器。但这听起来像是一个好的解决方案。谢谢Anrei – GeorgieF