Ajax請求不帶上cookie的原因

2021-09-29 06:47:48 字數 650 閱讀 2440

乙個用spring security做的許可權系統,頁面通過ajax來呼叫後台方法獲取當前使用者資訊,之前一直用的好好的,今天開啟一看發現一直獲取不了當前登入的使用者資訊,即後台用securitycontextholder.getcontext() .getauthentication().getname();獲得的一直是anonymoususer,而不是當前登入的使用者名稱,這就讓我很不解,明明**都沒動過,怎麼突然不行了,然後我就試著直接在瀏覽器輸入後台介面位址發現就正常!!!

因為我是通過cookie和session的方式來記錄當前使用者的,所以就覺得可能是cookie的問題,然後f12開啟一看我ajax請求的時候居然沒有帶cookie,但是我直接在瀏覽器上請求的時候卻有帶上cookie(下圖)

所以我肯定這就是問題的關鍵,但為什麼ajax請求沒有帶上cookie呢,然後去查了一下資料,原來ajax預設只會帶上同源的cookie,如果只是這樣還沒什麼,重點是localhost和本機的ip位址(我的是192.168.32.254)不是乙個域,因為我在瀏覽器輸入**打的是localhost:8761/page(也就是說當前域是localhost:8761),但為ajax的請求位址是寫192.168.32.254:8761,所以ajax請求就沒帶上localhost:8761下的cookie

HTTP請求自動帶上Cookie的前提

cookie是伺服器端返回的,cookie有效期預設瀏覽器關閉即失效。cookie預設根據網域名稱自動判斷是否帶上cookie資訊訪問。如果滿足下面幾個條件 1 瀏覽器端某個cookie的domain欄位等於aaa.www.com或者www.com 2 都是http或者https,或者不同的情況下s...

Ajax請求攜帶Cookie

目錄服務端設定跨域的幾種方式 方式二 對單個介面處理 方式三 crossorigin註解 方式四 nginx配置新增允許跨域請求 先來了解下xhr xhr,全稱為xmlhttprequest,用於與伺服器互動資料,是ajax功能實現所依賴的物件,jquery中的ajax就是對 xhr的封裝。還有ax...

解決ajax跨域請求資料cookie丟失問題

前端 以jquery為例 需要加入 複製 如下 xhrfields crossdomain true,ajax nb crossdomain true,success function failurecallback function lj v,datatype datatype 程式設計客棧 伺服...