web-dev-qa-db-ja.com

jQueryは投稿でCookieを送信しますか?

$。post(...)をjQueryで作成したときに、PostリクエストでサーバーにCookieが送信されているかどうかを知りたいですか?

ありがとう!

35
ramayac

CookieはAjaxリクエストで送信されます。

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

55
Ayman Hourieh

HttpOnlyCookiesをオンにしている場合、クライアントとサーバーで同じCookieを使用することはできません。これをオンにする非常に良い理由があります:

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

2
Chris Simpson

Firefox + Firebugを使用すると、jQueryが何をどのように送信するかを正確に確認できます。デバッグに役立ちます。

2
MSpreij

濡れた毛布になって申し訳ありませんが、私はここでポジティブな雰囲気を否定し、ノーと言います。

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

何かが足りない可能性がありますが、私は過去数時間これをテストしており、私が結論を下したのは、jQuery $ .postリクエストを使用してCookieが送信されないだけだということです:/

0
briznad

考慮すべき1つのことはCookieパスです。 ajaxでロードされたスクリプトがCookieを設定する場合、そのパスは親ページとは異なる場合があり、一部のサーバーアプリケーションまたはJQueryの異なるスコープに配置されます。今日私はしばらくこれを自分のホイールを回転させて過ごしました、そして、私が読んでいなかったクッキーが別のパスセットを持っていることに気づきました。

私にとっての簡単な修正は、すべてのCookieのパスをjQueryに/で設定することでした。

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

firebug cookies view

0
glyph