2009-06-24 44 views
35

我想知道是否,當我使用jQuery製作$ .post(...)時,是在發送請求時發送到服務器的任何cookie嗎?jQuery是否在帖子中發送cookie?

謝謝!

+2

如果你使用Firebug,你可以看看在「控制檯「區域看到正在發出的任何請求。在標頭中查找cookie數據。 – 2009-10-07 20:16:06

回答

54

Cookie與Ajax請求一起發送。

HTTPOnly標誌被設置爲cookie時,該cookie對客戶端腳本隱藏,但該cookie仍然通過Ajax請求發送。

+3

HTTPOnly不會影響AJAX/HTTP請求,它只會隱藏客戶端腳本中的Cookie。它仍將被髮送到服務器。 – 2009-09-08 17:31:22

+1

@Christian - 更正,謝謝。 – 2009-10-07 20:11:24

2

使用Firefox + Firebug的,你可以看到什麼jQuery的發送,以及如何。用於調試!

0

對不起,我是一個潮溼的毯子,但我要與這裏的積極共鳴相矛盾,並說不。

我目前正在構建一個應用程序,使用$ .post連接到我的API後端,該後端由Expressnode.js供電。我使用Express cookie解析器中間件來讀取每個請求中發送的cookie。如果我通過瀏覽器直接訪問我的端點,則後端服務器可以看到我的域中可見的Cookie。但是,當我在我的應用程序中使用$ .post時,cookie對象只是空白。

這是可能的,我失去了一些東西,但我一直在測試這最後幾個小時,結束時我來的,Cookie是根本沒有使用jQuery的$。員額要求發送:/

0

有一點需要考慮的是cookie路徑。如果ajax加載的腳本設置了一個cookie,那麼它的路徑可能與父頁面不同,因此將它放在一些服務器應用程序或JQuery的不同範圍內。今天我花了一段時間在我的車輪上旋轉,然後注意到我有麻煩的曲奇,有不同的路徑設置。

我簡單的解決方法是設置所有的cookie的路徑/使用jQuery在我的Ajax請求,像這樣:

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

firebug cookies view