我有一个受保护的 Backbone.js 应用程序(使用Spring 安全性atm。),因此登录用户必须具有有效的会话 cookie (JSESSIONID)。现在,如果此会话无效(删除、过期等)并且用户尝试发出请求,Spring 安全性将返回 302 错误以尝试将用户重定向到登录表单。
正如这个答案中所解释的,这个 302 响应由浏览器处理(它没有到达我的应用程序)所以返回给我的应用程序的是一个 200 OK 响应,内容类型 =“text/html”(包含登录表单) .
这是一个问题,因为当我的 Backbone 模型尝试同步到 url 时,它需要 JSON。如果在没有有效会话的情况下发生此同步,则在需要“application/json”时返回 200“text/html”响应,从而在jQuery.extend.parseJSON
.
在这个问题/答案的大力帮助下,我重写了该Backbone.sync
方法以使用我自己的错误处理。但是,由于 302 从未到达我的错误处理程序,我无法自己覆盖重定向。
我的情况与这个问题非常相似,但是从未发布过该问题的最终解决方案。有人可以帮我找出确保重定向到登录页面的理想方法吗?