41

AJAX リクエストで Cookie 値を設定したいのですが、以下のコードが機能しません。

$.ajax({
    type: "GET",    
    url: "http://example.com",
    cache: false,
    setCookies: "lkfh89asdhjahska7al446dfg5kgfbfgdhfdbfgcvbcbc dfskljvdfhpl",
    crossDomain: true,
    dataType: 'json',
    success: function (data) {
        alert(data);
    });

ヘッダーに Cookie を設定するにはどうすればよいですか?

4

1 に答える 1

50

基本的に、ajax リクエストと同期リクエストは、ドキュメントの Cookie を自動的に送信します。そのため、Cookie をリクエストではなくドキュメントに設定する必要があります。ただし、リクエストはクロスドメインであり、事態はさらに複雑になりました。この回答に基づいて、さらにドキュメント Cookie を設定するには、クロスドメイン環境への送信を許可する必要があります。

type: "GET",    
url: "http://example.com",
cache: false,
// NO setCookies option available, set cookie to document
//setCookies: "lkfh89asdhjahska7al446dfg5kgfbfgdhfdbfgcvbcbc dfskljvdfhpl",
crossDomain: true,
dataType: 'json',
xhrFields: {
    withCredentials: true
},
success: function (data) {
    alert(data);
});
于 2013-05-31T07:38:14.417 に答える