2012-12-19 13 views
8

domainがクロスサイトリクエストを使用して追加された場合にCookieを設定できません。私はjquery ajaxを通じてリクエストを呼び出すことでそれを達成しようとしています。ドメインフィールドを持つCORSクッキーは、FirefoxでのみjQuery AJAXを使用して設定しています

Firefox以外のブラウザでも動作させることはできますか?

いくつかのリクエストヘッダ:

Accept:application/json, text/javascript, */*; q=0.01 
Content-Length:55 
Content-Type:application/x-www-form-urlencoded; charset=UTF-8 
Host:localhost:53862 
Origin:http://localhost:54265 
Referer:http://localhost:54265/ 

レスポンスヘッダ:

Access-Control-Allow-Credentials:true 
Access-Control-Allow-Headers:x-requested-with, origin, content-type, accept, Proxy-Connection 
Access-Control-Allow-Methods:GET,POST,PUT,OPTIONS, DELETE 
Access-Control-Allow-Origin:http://localhost:54265 
Set-Cookie:Auth=l_hash=123456&user=xyzl&remember_me=false; expires=Fri, 18 Jan 2013 13:42:10 GMT; domain=localhost; path=/ 

コード:

$.ajax({ 
    type: "PUT", 
    url: apiHost + "api/account/login/", 
    data: $("#loginBarForm").serialize(), 
    dataType: "json", 
    contentType: "application/x-www-form-urlencoded; charset=UTF-8", 
    crossDomain: true, 

    xhrFields: { 
     withCredentials: true 
    }, 
}); 

のEv erythingはfirefoxでうまいです。 ChromeはCookieを設定していません。ドメインフィールドが削除されている場合のみ、すべてのブラウザですべての作業が行われます。私は、次のリクエスト(クッキーを設定した後)でそのクッキーがヘッダーに現れることがわかります。 (応答がドメインフィールドを持っていた)クッキーを設定し、応答した後、Firefoxの要求から例:

Cookie: Auth=l_hash=123456&user=xyz&remember_me=false 
+0

'localhost'は' Set-Cookie'ヘッダの有効なドメインですか? [RFC](http://www.ietf.org/rfc/rfc2109.txt)によると、少なくとも1つの "埋め込み"ドットを含む必要があります。 FireFoxはこれをあまり制限の少ない方法で実装するかもしれません。代わりにあなたのIPアドレスをお試しください。 – Stan

+0

@Stanありがとう、答えとして投稿してください。 – Mariusz

答えて

5

私はこの問題はSet-Cookieヘッダーのための有効なドメインではありませんこれは、localhostとすることができると思います。 RFCによれば、少なくとも1つの「埋め込まれた」ドットを含まなければならない。 FireFoxはこれをあまり制限の少ない方法で実装するかもしれません。代わりにあなたのIPアドレスをお試しください。

+0

単に 'localhost'を' 127.0.0.1'に置き換えてくれました。ありがとう! – Matt

3

ブラウザの設定でサードパーティのCookieがブロックされていたことが判明しました(Chrome>設定>詳細設定>プライバシー>コンテンツ設定>サードパーティのCookieとサイトデータをブロックする)。クッキーを許可すると問題は解決しました!

+0

はい、これは何時間もの欲求不満の後に私の問題を解決しました!私の場合に限り、私はFirefoxでサードパーティのCookieをブロックしていました。 – alexw

関連する問題