2016-04-29 4 views
1

Windows 8 EnterpriseでIE v10.0.9200.xxxを使用しています。CORSを使用している場合、IE10はクッキーを送信しません。

CORSリクエストを送信するときにIE10でCookieが送信されません。

クロムにうまく機能します!私はクロムを使用するときにクッキーにアクセスできます。 要求は正常に動作し、データは戻ってきますが、サーバー側にはCookieがありません。また、IE10ページのインスタンスにCookieがあります。

Access-Control-Allow-OriginおよびAccess-Control-Allow-Credentialsヘッダーが正しく設定されています。 IE10を使用するときに従わなければならないことはありますか? IEはいつも私のウェブアピメッセージハンドラでは

$.ajax({ 

    type: 'GET', 
    url: 'https://mywebapi.dev/api/Values', 
    contentType: 'text/plain', 
    dataType: "json", 

    xhrFields: { 

     withCredentials: true 
    }, 
    headers: { 
    }, 
    success: function (data, msg, xhr) { 
     alert(data); 
     alert(msg); 
    }, 
    error: function (xhr, error) { 
     } 
}); 

:-)特定されています:HTTPのみ= falseを

r.SetCookie("CookieName", "CookieValue", true, DateTime.Now.AddYears(10), false, "/", true, ""); 

答えて

0

、真=セキュア、 は、共有可能な、私は私のウェブAPIにP3Pヘッダを追加しましたresponse.headersコレクション:

r.Headers.Add("P3P", "CP=\"CURa ADMa DEVa CONo HISa OUR IND DSP ALL COR\""); 

私はP3P値の意味を確認し、あなたが設定されない値世話をしていませんでした。 私が読んで理解しているように、値は何でもかまいません"CP='XYZ'"

しかし、まだ1つの問題があります。 IE10では、私のWeb APIが発行したCORSクライアントからのCookieの取得と設定のみが可能です。 Chromeを使用すると、ウェブAPIですべてのCookieが取得されます。

Answer

.withCredentialsプロパティは、リクエストでリモート ドメインから任意のクッキーが含まれます、そしてそれはまた、 リモートドメインから任意のクッキーを設定します。これらのCookieは同じ起源の ポリシーを引き続き遵守するため、JavaScriptコードは document.cookieまたは応答ヘッダーのCookieにアクセスできません。リモートドメインによって制御されるのは のみです。

IE10でカスタムヘッダーを追加すると、要求が中止されます。

headers: { 
       /// request is aborted in IE10 when using custom header, 
       /// works in Chrome issueing a options preflight request 
       "AUTHORIZATION": "dev-client" 
} 
関連する問題