3

POST を使用してクロスドメイン サービスを提供したいと考えています。プリフライト OPTIONS 呼び出しが成功したことを確認できますが、投稿すると Cookie が Chrome に送信されません。Firefox と Safari では、同じ JavaScript とサーバー コードが機能します。何が問題なのですか?詳細は次のとおりです。

リクエスト URL:http://j.test.com/Post
リクエスト方法:OPTIONS
ステータス コード:200 OK
リクエスト ヘッダー表示ソース
Accept: /
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q =0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:origin, x-requested-with, content-type, accept
Access-Control-Request - メソッド: POST
接続: キープアライブ
ホスト: j.test.com
オリジン: http://www.amazon.comリファラー:
http://www.amazon.com/Gone-Girl-A-Novel-ebook/dp /B006LSZECO/ref=pd_rhf_gw_s_ts_2
ユーザーエージェント:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML、Gecko など) Chrome/20.0.1132.47 Safari/536.11

応答ヘッダー
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:origin、x-requested-with、content-type、accept
Access-Control-Allow-Methods:POST、OPTIONS
Access-Control-Allow-Origin :http://www.amazon.com
Access-Control-Max-Age:1728000
Connection:keep-alive
Content-Length:0
Date:Tue, 04 Sep 2012 16:44:48 GMT
サーバー:nginx

私はjQueryを使用しています:

  jQuery.ajax({
     type: "POST",
     url: "http://j.test.com/Post",
     xhrFields: {
        withCredentials: true
     },
     data: {
            referringUrl: document.URL
           },
     success: function(data) {
     },
     error: function (responseData, textStatus, errorThrown) {
     }
  });
4

2 に答える 2

0

フラグ withCredentials を true に設定する必要があります ( http://techblog.constantcontact.com/software-development/using-cors-for-cross-domain-ajax-requests/ )

于 2013-07-02T09:08:09.840 に答える
0

crossDomain: trueまた、通話で必要になる場合がありますjQuery.ajax()

于 2013-09-06T18:49:29.807 に答える