vue axios sessionID每次請求都不同的原因以及修改方式
vue axios sessionID每次請求都不同的原因
今天應(yīng)項目需要,需要在請求當(dāng)中加入sessionID的驗證,但是發(fā)現(xiàn)每一次發(fā)送給后臺的請求當(dāng)中,sessionID都是不一樣的,那么原因是什么呢?
查閱度娘之后
發(fā)現(xiàn)自己封裝的axios配置文件當(dāng)中,缺少了一行:
import axios from 'axios' axios.defaults.withCredentials = true
這是axios的文檔: https://www.kancloud.cn/yunye/axios/234845
// `withCredentials` 表示跨域請求時是否需要使用憑證 withCredentials: false, // 默認的
在我封裝的axios請求當(dāng)中,是沒有 withCredentials的配置的, 如果沒有配置為true,默認為false則向后臺發(fā)送的請求當(dāng)中不攜帶cookie信息,如此每一次sessionID自然會不同。
而再加入這一行配置之后,再次測試,發(fā)現(xiàn)出現(xiàn)新的的問題:
Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. Origin 'http://localhost:8080' is therefore not allowed access. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
這個時候,就需要后臺的同事幫忙了,在后臺的跨域請求頭配置當(dāng)中,進行如下兩行的配置:
response.setHeader("Access-Control-Allow-Origin", "*");// 不能是通配符*
而是:
作用是將訪問接口才ip注冊進去。
第二個配置是:
Access-Control-Allow-Credentials: true
若是不設(shè)置成這個,也會出錯。
而這樣前后都設(shè)置完畢之后,再次請求,你會發(fā)現(xiàn),還是出錯了,那是因為,你需要在修改一個地址
host: 'localhost', // 這里要修改為你本機的ip地址,那少年,你就成功了 port: 8080, // 端口 autoOpenBrowser: false,
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue-video-player實現(xiàn)實時視頻播放方式(監(jiān)控設(shè)備-rtmp流)
這篇文章主要介紹了vue-video-player實現(xiàn)實時視頻播放方式(監(jiān)控設(shè)備-rtmp流),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08使用websocket和Vue2中的props實時更新數(shù)據(jù)方式
這篇文章主要介紹了使用websocket和Vue2中的props實時更新數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08vue中v-for循環(huán)選中點擊的元素并對該元素添加樣式操作
這篇文章主要介紹了vue中v-for循環(huán)選中點擊的元素并對該元素添加樣式操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07