2011-11-11 89 views
0

我正在寫一些代碼,使我們的Web服務器的AJAX請求。我們的服務器運行一些邏輯,然後用一些JSON響應。它也可以用set-cookie頭回應:Firefox可以接受來自AJAX響應頭的第三方Cookie嗎?

Set-Cookie: our_organisation=[uuid]; domain=.our_organisation.com; path=/; expires=[soon] 

它可以在Chrome和Safari,據我所知道的,但是不能在Firefox。火狐接受cookie,如果它是一個圖像請求,而不是。我在這裏做錯了什麼?

我已經有一個問題,我無法閱讀Firefox中客戶端的AJAX響應;這通過在響應頭中設置Access-Control-Allow-Origin: *來解決。

回答

2

這是一個跨站點XMLHttpRequest?

如果是這樣,每http://dev.w3.org/2006/webapi/XMLHttpRequest-2/withCredentials默認爲false因此用於CORS的「憑證標誌」設置爲假,然後每http://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html的「塊餅乾」標誌的HTTP期間設置得到的,和每http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch這意味着Set-Cookie標題被忽略。聽起來像Chrome和Safari只是沒有遵循這裏的規格。

您可以在XHR對象上設置withCredentials = true來發送cookie。但請注意,如果您這樣做,則必須在Access-Control-Allow-Origin中列出實際來源;你不能只使用*

+0

感謝您的鏈接!有很多閱讀要做。 – Cera

+0

@Cerales順便說一下,我向WebKit人員報告了WebKit行爲,但他們無法複製它。您確定您在Chrome和Safari中執行跨網站請求嗎? –

相關問題