我有兩個subdomais「api.domain.com」和「web.domain.com」。 現在「web.domain.com」是用html/javascript編寫的網頁,「api.domain.com」是一個簡單的用PHP編寫的寧靜的API服務器。在頭不是由另一個子域設置的標頭cookie?
「api.domain.com」 設置某些Cookie如下
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true");
setcookie("TestCookie", "Some Value", time()+3600, "/", ".domain.com", 0);
現在,當我讓調用Ajax(使用jQuery.ajax())從 「web.domain.com」以「api.domain.com」時,響應頭包含
Set-Cookie:abc=802691344656c1d0899c4a74.87956617; expires=Mon, 16-May-2016 21:00:09 GMT; path=/; domain=domain.com,
所以我想一個cookie應在客戶端瀏覽器在「web.domain.com」進行設置。
下一次我向「web.domain.com」發出另一個請求到「api.domain.com」時,不應該將此cookie作爲請求請求的一部分嗎?
但是,當我檢查「api.domain.com」中的$ _COOKIE數組時,我看不到這個cookie!這是否意味着cookie從未在客戶端(「web.domain.com」)首次被設置?我究竟做錯了什麼?
首先,您應該檢查瀏覽器工具在哪裏設置了哪些cookie。 – jeroen
Cookie不會發送到跨域,除非您使用withCredentials標頭 – charlietfl
此外,'.domain.com'不是有效的域名。 – Cristy