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