cookie的跨域訪問嗎
① 什麼是cookie跨域問題
在Cookie規范上說,一個cookie只能用於一個域名,不能夠發給其它的域名。因此,如果在瀏覽器中對一個域名設置了一個cookie,這個cookie對於其它的域名將無效。如果你想讓你的用戶從你的站點中的其中一個進行登錄,同時也可以在其它域名上進行登錄,這可真是一個大難題。這就是跨域問題。
② cookie機制&跨域問題
推薦閱讀
當用戶第一次訪問並登陸一個網站的時候,cookie的設置以及發送會經歷以下4個階段:
客戶端發送一個請求到伺服器
伺服器發送一個httpResponse響應到客戶端,其中包含set-cookie的頭部
客戶端保存cookie,之後向伺服器發送請求時,httpRequest請求中會包含一個Cookie的頭部
伺服器返回響應數據
cookie的域名
Cookie是不可以跨域名的,隱私安全機制禁止網站非法獲取其他網站的Cookie。
正常情況下,同一個以及域名下的兩個二級域名也不能交互Cookie,比如test1.jianshu.com與test2.jianshu.com,因為二者的域名不完全相同,如果想要jianshu.com名下的二級域名都可以使用該Cookie,需要設置Cookie的domain參數為jianshu.com,這樣使用test1.jianshu.com和test2.jianshu.com就能訪問同一個域名了。
下面是Chrome瀏覽器存儲的一個cookie信息
設置的過程,伺服器設置cookie的時候,需要指定cookie的domain,當domain與當前host的匹配不上的時候,responseHeader里的set-cookie不會設置成功。這也就是cookie不支持跨域問題。