安全なBackbone.jsアプリ(SpringセキュリティATMを使用)を持っているので、ログインしているユーザーは有効なセッションCookie(JSESSIONID)を持っている必要があります。これで、このセッションが無効になり(削除、期限切れなど)、ユーザーがリクエストを行おうとすると、Springセキュリティはユーザーをログインフォームにリダイレクトしようとして302エラーを返します。
この回答で説明されているように、この302応答はブラウザーによって処理されるため(アプリに到達しません)、アプリに返されるのはcontenttype = "text / html"(ログインフォームを含む)の200OK応答です。 。
これは問題です。私のBackboneモデルがURLへの同期を行おうとすると、JSONが必要になるためです。この同期が有効なセッションなしで発生した場合、「application /json」が予期されているときに200の「text/html」応答が返され、でJSON解析エラーが発生しjQuery.extend.parseJSON
ます。
この質問/回答の大きな助けを借りて、私Backbone.sync
は自分のエラー処理を使用するためにメソッドをオーバーライドしました。ただし、302がエラーハンドラに到達することはないため、リダイレクトを自分でオーバーライドすることはできません。
私の状況はこの質問と非常に似ていますが、問題の最終的な解決策は投稿されていません。ログインページへのリダイレクトを確実に行うための理想的な方法を誰かが教えてくれませんか?