2009-06-24 7 views
35

私は、$ .post(...)をjQueryで作成した場合、は投稿要求でサーバーに送信されたCookieですか?jQueryは投稿内にCookieを送信しますか?

ありがとうございます!

+2

:私のために

簡単な修正がそうように私のAjaxリクエストでjQueryを使って/にすべてのクッキーのパスを設定することでした

要求が行われたことを確認するための領域。ヘッダーでクッキーのデータを探します。 –

答えて

54

CookieはAjaxリクエストとともに送信されます。

クッキーにHTTPOnlyフラグが設定されている場合、このクッキーはクライアント側のスクリプトからは隠されますが、クッキーは引き続きAjaxリクエストとともに送信されます。

+3

HTTPOnlyはAJAX/HTTP要求に影響を与えません。クライアント側スクリプトからのCookieのみを非表示にします。それでもサーバーに送信されます。 –

+1

@Christian - 修正済み、ありがとうございます。 –

2

httpOnlyCookiesをオンにしても、クライアントとサーバーで同じCookieを使用することはできません。そこは非常に良い理由スイッチこれはあまりにも上にある:

http://www.codinghorror.com/blog/archives/001167.html

+0

+1そのリンクをありがとう! – MSpreij

+2

これは間違っています。この質問を見て、HTTPOnly + AJAXについて本当に良い説明をしてください:http://stackoverflow.com/questions/27972/are-httponly-cookies-a-viabila-option-for-an-ajax-website –

2

あなたはjQueryの送信を正確にものを見ると、どのようにできるのFirefox + Firebugのを使用します。デバッグに便利です!

0

申し訳ありませんが、濡れた毛布になりますが、私はここで肯定的な雰囲気と矛盾し、NOと言うつもりです。

私は現在、APIバックエンドに接続するために$ .postを使用してアプリケーションを構築しています。これは、Expressnode.jsによって提供されています。私は、Express Cookieパーサーミドルウェアを使用して、各リクエストで送信されたCookieを読み取ります。ブラウザを介してエンドポイントに直接アクセスすると、バックエンドサーバーは自分のドメインに表示されているCookieを見ることができます。しかし、アプリで$ .postを使用すると、Cookieオブジェクトは空白になります。

それは私が何かが欠けていますが、私は最後の数時間のためにこれをテストしてきたと私はに来ている結論はクッキーを簡単にjQueryの$ .post要求を使用して送信されていないことであることが可能です:/

+0

典型的なhtml投稿です。あなたのクッキーデバッガはうんざりしているようです。クッキーが送信されるかどうかは、ブラウザの決定であり、スクリプト/ jqueryではありません。 –

+8

これは、クロスドメインリクエストを実行しているためで、クロスドメインXHRリクエストではCookieが送信されていないためです。 http://stackoverflow.com/questions/7911710/jquery-ajax-call-not-sending-cookie – Josh

0

クッキーパスを考慮する必要があります。 ajaxがロードされたスクリプトがクッキーを設定する場合、そのパスは親ページと異なる場合があり、一部のサーバーアプリケーションまたはJQueryでは異なるスコープに設定されます。私は今日、この間私の車輪を回転させて、私は別のパスを設定して読んで問題を抱えていたクッキーに気づいた。あなたはFirebugのを使用する場合は、「コンソールで見ることができ

$.cookie("isolates_grid_tgl", "true", { path: "/" }); 

firebug cookies view

関連する問題