2011-10-27 57 views
3

我有一個跨子域的jQuery ajax調用工作正常,除非它不發送cookie。有什麼辦法可以做到這一點?jquery ajax調用不發送cookie

+0

請問你的Ajax調用的樣子......它很難猜測 – Rafay

+0

$阿賈克斯({ \t \t \t類型: 'POST', \t \t \t網址:「HTTP:// api.example.com」, \t \t \t數據:{/ *這裏的一些數據* /}, \t \t \t數據類型: 'JSON' \t \t})。 類似的東西 – LordZardeck

回答

2

這聽起來像我預期的行爲。 Cookie是每個域名(包括子域名)。但我認爲你可以像這樣強行:

$.ajax({ 
    headers: {'Cookie' : document.cookie }, 
    url: "sub.domain.com", 
    success: function(){ ... 

這是沒有經過測試的,所以讓我知道,如果它的工作原理;)

編輯:其實它看起來像它不是不可能的。 ..看這裏:How do I SET a Cookie (header) with XMLHttpRequest in JavaScript?你可能是SOL

但它認爲你可以在PHP中設置Cookie,以便它們在所有子域中有效。類似這樣的:

ini_set('session.cookie_domain', '.example.com') 

注意'。'在域之前 - 它將爲example.com及其所有子域設置cookie。

您可以使用上述設置在您的應用程序中設置session.cookie_domain,或者在php.ini中設置它。

以上摘自here

+0

這是不行的。 :p – LordZardeck

+0

其實它看起來像它根本不可能......看這裏:http://stackoverflow.com/questions/2320110/how-do-i-set-a-cookie-header-with-xmlhttprequest-in- javascript你可能是SOL – Matthew

+0

oO那麼Facebook怎麼做呢? – LordZardeck