ajax 跨域請求session丟失

2021-09-03 07:49:44 字數 1060 閱讀 5480

為什麼跨域請求的時候session會丟失?

關鍵先認識一下xmlhttprequest.withcredentials屬性。 

引用mdn:

如果在傳送來自其他域的xmlhttprequest請求之前, 

未設定withcredentials為true,那麼就不能為它自己的域設定cookie值。 

而通過設定withcredentials為true獲得的第三方cookies,將會依舊享受同源策略,因此不能被通過document.cookie或則頭部相應請求的指令碼等訪問。

注:永遠不會影響到同源請求

note: 不同域下的xmlhttprequest相應,不論其access-control-header設定什麼值, 都無法為它自身站點設定cookie值,除非在它請求之前將withcredentials設為true。

mdn案例(原生js):

})示例:

});

服務端設定:

header("access-control-allow-credentials: true");       // 是否支援cookie跨域

header("access-control-allow-origin: ");  // 允許該域跨域訪問

Ajax跨域請求

一 什麼是跨域請求 網域名稱它由http 協議 www 子網域名稱 baidu 主網域名稱 以及8080 埠號 組成,當另乙個網域名稱與其中任意一項對應不等的話,那麼我們說兩個網域名稱就是跨域的。如的頁面上我們要請求資料到上去,那麼就說這種請求是跨域請求。二 為什麼要講跨域請求 因為在一般的請求條件...

Ajax 跨域請求

隨筆 71 文章 0 客戶端js 服務端 1 string callbackfunname context.request callbackparam 2 context.response.write callbackfunname ps 客戶端的jsonp引數是用來通過url傳參,傳遞jsonpc...

ajax跨域請求

通過xhr實現ajax通訊的乙個主要的限制,於跨域安全策略。在預設情況下,xhr物件只能訪問與包含它的頁面位於同乙個域中的資源。這樣可以防止一些惡意行為。所謂的域,可以理解成網域名稱,如果這個xhr所在的頁面與請求的介面是在同乙個應用下面,那麼就不存在跨域的問題,它們是在同乙個域下面,例如這裡都在本...