私はフレームワークでCORS(クロスオリジンリソース共有)を実装しています。CORS - Jquery ajaxの "withCredentials:true"が使用されたかどうかをサーバーがどのように知ることができますか?
私はXMLHttpRequestのリクエストがjQueryのajax(...)
を使用して作られたとwithCredentials
プロパティがtrue
でいるとき、サーバはこれら二つ応答しなければならないことを知っている:サーバー
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin:[THE_DOMAIN]
をワイルドカードを使用したの応答はありませんAccess-Control-Allow-Origin:*
:そのdoesn't work!
私の質問:サーバー上で、withCredentials: true
が使用されていることをどのように知っているので、私はワイルドカードを使用しませんか?
withCredentials: false
を使用したときとwithCredentials: true
を使用したときに送信されたヘッダーを比較しました。これらは同じです!
クライアントが要求したときに資格情報を許可したい場合は、を入力してください。Access-Control-Allow-Origin:*
を使用しますか?
もし 'withCredentials'がtrueに設定されていれば、元のドメインにあるクッキーセットも受け取らなければなりません。これが最初のリクエストに当てはまるか、サーバーが' Access-Control- Allow-Credentials:true'(私は両方のシナリオが真実であると想像することができますが、私は後者がもっともらしいと仮定します)。ワイルドカードについては、(原点ヘッダーから)許可されたドメインを常に指定する傾向があります。 [この回答は役に立ちそうです](http://stackoverflow.com/a/21851378/2579117)。 –
@RogierSpiekerクエリが 'withCredentials:true'で行われ、クッキーがなくてもワイルドカードで失敗します。私は 'withCredentials:true'を使うときにクライアントにクッキーを送ることを強制することは望ましくないと思います...あなたは彼のコードのロジックを知らないのです。だからあなたは本当にクッキーの存在に頼ることができない、と私は思う。助けてくれてありがとう! – electrotype
私は、 'withCredentials:true'が設定されている場合にクッキーを強制的に設定する必要があることを暗示していませんでした。この場合、クッキーの存在は 'withCredentials'が' true'であることを示します。 –