2016-04-14 9 views
0

Angularjs configファイルです。ブラウザがOPTIONS要求を送信しても、クッキーはサーバに送られません。

.config(function($httpProvider) { 
    $httpProvider.defaults.withCredentials = true; 
}) 

backendSpring MVCを用いfront-end,Angularjsを使用してアプリケーション。ユーザーがアプリケーションにログインすると、バックエンドはsessionfront-endに書き込みます。そのため、アプリケーションはCookieを使用して認証します。

GETおよびPOSTは両方ともokです。しかし、 "PUT"を使用する方法があり、ブラウザは "OPTIONS"というリクエストを送信します。その時点で、サーバーは要求を認証できません。クッキーがないので。ブラウザは「OPTIONS」リクエストを送信するので、cookieServerにすることができます。

答えて

0

サーバーではOPTIONS要求を個別に処理し、通常のフィルタ(Javaベースのバックエンドを使用していることを前提としています)を使用しないでください。ただし、CORSフィルタがすべてのAllow- *ヘッダーをそれぞれの応答に追加するようにしてください。

これらのリクエストは、認証されていないものとして扱われる必要があります。つまり、資格情報を必要とせず、特定のセッションに結びついておらず、セッションに影響するCookieを設定しません。

セッションIDの不一致により、CORSフィルタは要求をブロックします。

これは誤解です。 CORSは、どのユーザーセッションにも依存しません。あなたのサーバー認証ロジックが、新しく作成されたセッションIDが無効であるためにリクエストをブロックしています。

投稿者:https://stackoverflow.com/a/34640755/3279156

関連する問題