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/開頭改為后端返回path開頭
修改后:
devServer: {
? ? proxy: {
? ? ? '/xxx/': {
? ? ? ? target: 'http://baidu.com:8811',
? ? ? ? changOrigin: true,
? ? ? ? pathRewrite: {
? ? ? ? ? '^/xxx/': '/'
? ? ? ? }
? ? ? }
? ? }
? }以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue配置代理vue.config.js后不生效的解決(小坑)
這篇文章主要介紹了vue配置代理vue.config.js后不生效的解決(小坑),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
axios前端訪問(wèn)后端攜帶cookie的代碼實(shí)例
當(dāng)用戶在網(wǎng)站登錄后,服務(wù)器會(huì)在其瀏覽器上設(shè)置一個(gè)包含登錄信息的Cookie,通過(guò)這個(gè)Cookie,服務(wù)器能夠識(shí)別用戶是否已登錄,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09
解決vue2.x中數(shù)據(jù)渲染以及vuex緩存的問(wèn)題
本篇文章主要介紹了vue2.x中請(qǐng)求之前數(shù)據(jù)顯示以及vuex緩存的問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Vue3實(shí)現(xiàn)登錄表單驗(yàn)證功能
這篇文章主要介紹了Vue3實(shí)現(xiàn)登錄表單驗(yàn)證功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
vue 使用iView組件中的Table實(shí)現(xiàn)定時(shí)自動(dòng)滾動(dòng)效果
要在css中設(shè)置table的高度,使數(shù)據(jù)過(guò)多時(shí)出現(xiàn)滾動(dòng)條,將縱向設(shè)置為overflow-y: auto;橫向設(shè)置隱藏 overflow-x: hidden,接下來(lái)通過(guò)本文介紹vue使用iView組件中的Table實(shí)現(xiàn)定時(shí)自動(dòng)滾動(dòng)效果,需要的朋友可以參考下2024-05-05
拿來(lái)就用vue-gird-layout組件封裝示例
這篇文章主要介紹了vue-gird-layout組件封裝示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08

