解決跨域,session不一致問題

2021-08-06 01:58:09 字數 1735 閱讀 9806

今天前後互動 的時候發現session的id不一致。(我的邏輯是這樣的,使用者登入,賬號密碼都正確的時候,我就把使用者資訊放到session裡面去,後續各種操作例如:獲取使用者資訊等等。就不需要傳遞uid了。)

我這邊後台伺服器啟動,前端進行介面對接的時候,後台一直獲取不到值。最後發現request裡有值,session也有值,但是session的id卻不一致。想來想去不知道怎麼回事。後來無意間想到跨域,以前解決過跨域問題,就是在fitter裡加上

response.setheader("access-control-allow-origin", "*");

response.setheader("access-control-allow-methods", "post, get, options, delete");

response.setheader("access-control-max-age", "3600");

response.setheader("access-control-allow-headers", "content-type, access-control-allow-headers, authorization, access-token");

第一行,意思是執行從所有位址發來的請求。

第二行,意思是允許  post, get, options, delete,這些方式的請求

第三行,意思是在該響應在多少秒內有效

第四行,意思是允許的請求頭型別

可是對於今天的問題還是報錯了。

那麼從新來設定

response.setheader("access-control-allow-origin", request.getheader("origin"));

response.setheader("access-control-allow-methods", "post, get, options, delete");

response.setheader("access-control-max-age", "0");

response.setheader("access-control-allow-headers", "origin, no-cache, x-requested-with, if-modified-since, pragma, last-modified, cache-control, expires, content-type, x-e4m-with,userid,token,access-control-allow-headers");

response.setheader("access-control-allow-credentials", "true");

response.setheader("xdomainrequestallowed","1");

注意:

access-control-allow-credentials  是true的時候。   access-control-allow-origin"的值不能為*。
同時

在ajax 請求是也要加相應的東西

$.ajax(,

crossdomain: true,

success:function(result),

error:function()

});這樣我們再跨域測試的時候,就會發現我們的sessionid是一樣的了,這樣就實現了跨域並且保證在同乙個session下。

以上,解決問題。

參考:

VUE 跨域及SESSION改變不一致解決

vue向後台傳送cookie中包含session資訊,需要在requset.js中如下設定 import axios from axios axios.defaults.withcredentials true 建立axios 例項 spring跨域處理 跨域需要設定前台訪問請求網域名稱,在沒有需要...

解決跨域訪問導致session id不一致的問題

一 問題 前後端分離專案,使用了session儲存使用者的資訊,使用者登入成功後,用同乙個token去獲取使用者資訊時,出現了提示該使用者未登入的錯誤。二 原因 前端使用ajax請求,涉及到跨域問題,導致了同乙個使用者的請求的session id不一致,所以出現上述問題,日誌捕獲到的session ...

ajax跨域導致sessionId不一致

網上有很多方法,大部分相同,也是有用的,只是我被折磨了好幾天,竟是chrome瀏覽器同一視窗每次請求sessionid不同問題。也就是ajax跨域導致sessionid不一致我解決啦,但是我忘了chrome設定的問題,結果一直卡在這。所有分兩步 1.先解決chrome瀏覽器同一視窗每次請求sessi...