vue前后端分離如何解決每次請(qǐng)求session都會(huì)變的問(wèn)題
vue前后端分離每次請(qǐng)求session都會(huì)變
因?yàn)榍昂蠖藢儆诓煌挠?導(dǎo)致每次ajax請(qǐng)求服務(wù)器都會(huì)當(dāng)做新的用戶訪問(wèn),導(dǎo)致session丟失
解決方法
?<system.webServer> ? ? <httpProtocol> ? ? ? <customHeaders> ? ? ? ? <add name="Access-Control-Allow-Origin" value="http://localhost:8080" /> ? ? ? ? <add name="Access-Control-Allow-Headers" value="Content-Type" /> ? ? ? ? <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> ? ? ? ? <add name="Access-Control-Allow-Credentials" value="true"/> ? ? ? </customHeaders> ? ? </httpProtocol> ? <handlers> </system.webServer>
在后端Web.config添加允許跨域,
<add name="Access-Control-Allow-Origin" value="http://localhost:8080" />
這里的value寫前端的地址
再就是改前端ajax請(qǐng)求,我用的axios 在axios的index.js全局配置
axios.defaults.withCredentials=true;
這句話的意思是每次請(qǐng)求都帶上cookie,這樣每次取請(qǐng)求后端,就不會(huì)被認(rèn)為是不同用戶導(dǎo)致session丟失.哦了!
vue前后端分離session丟失,前端解決方式
背景:前端每次發(fā)送的ajax都是形成新的會(huì)話,本地測(cè)試時(shí)后端獲取sessionId為null
**********后端的代碼修改請(qǐng)查找其他文章,本文只涉及前端
1、解決前端每次發(fā)送的ajax都是形成新的會(huì)話
我是用的axios,只需在封裝的請(qǐng)求時(shí)添加
axios.defaults.withCredentials=true;
根據(jù)自己代碼做相應(yīng)改變就行,請(qǐng)求時(shí)添加withCredentials屬性,并且值為true。
withCredentials:true;請(qǐng)求時(shí)攜帶cookie
2、本地測(cè)試時(shí)結(jié)果發(fā)現(xiàn)還是無(wú)法成功,后端獲取的sessionId為null
后端返回cookie
Set-Cookie: SESSION=NzgyMDdjZDgtNjJhMC00NmNkLTkxNWYtNjE4ZmRkYmFlOWQy; Path=/xxx/;
cookie后面還有一個(gè)path=/xxx/ 即后端項(xiàng)目路徑,
只需要在為解決跨域設(shè)置代理時(shí)
原代碼:
devServer: { ? ? proxy: { ? ? ? '/dev-api/': { ? ? ? ? target: 'http://baidu.com:8811', ? ? ? ? changOrigin: true, ? ? ? ? pathRewrite: { ? ? ? ? ? '^/dev-api/': '/' ? ? ? ? } ? ? ? } ? ? } ? }
以/dev-api/開(kāi)頭改為后端返回path開(kāi)頭
修改后:
devServer: { ? ? proxy: { ? ? ? '/xxx/': { ? ? ? ? target: 'http://baidu.com:8811', ? ? ? ? changOrigin: true, ? ? ? ? pathRewrite: { ? ? ? ? ? '^/xxx/': '/' ? ? ? ? } ? ? ? } ? ? } ? }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)公告消息橫向無(wú)縫循環(huán)滾動(dòng)
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)公告消息橫向無(wú)縫循環(huán)滾動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04vue axios調(diào)用接口方法報(bào)錯(cuò)500 internal server err
前端使用axios 訪問(wèn)后端接口時(shí)報(bào)錯(cuò),在瀏覽器中點(diǎn)擊紅色的報(bào)錯(cuò)數(shù)據(jù),本文給大家分享vue axios調(diào)用接口方法報(bào)錯(cuò)500 internal server error的兩種解決方法,感興趣的朋友一起看看吧2023-10-10vue實(shí)現(xiàn)圖片滑動(dòng)驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)圖片滑動(dòng)驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03使用proxy實(shí)現(xiàn)一個(gè)更優(yōu)雅的vue【推薦】
Proxy 用于修改某些操作的默認(rèn)行為,等同于在語(yǔ)言層面做出修改,所以屬于一種“元編程”。這篇文章主要介紹了用proxy實(shí)現(xiàn)一個(gè)更優(yōu)雅的vue,需要的朋友可以參考下2018-06-06Vue3如何理解ref toRef和toRefs的區(qū)別
本文主要介紹了Vue3如何理解ref toRef和toRefs的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12