先别喷我,文档我已经看了,也谷歌了,按着文档或者搜索到的答案设置出来的结果都不是我要的,main.js代码如下
axios.interceptors.request.use(
config => {
// 判断是否存在token,如果存在的话,则每个http header都加上token
// config.withCredentials = true
config.headers['X-Token'] = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9hcGkuamlhamlh'
return config
},
err => {
return Promise.reject(err)
})
浏览器输出的结果如下
只是多了一个Access-Control-Request-Headers:x-token
连x-token得值都没有,不应该是在头信息里多一个X-Token,与"Host"等同级的属性吗?
不应该是
X-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9hcGkuamlhamlh
这样的吗?
求解
是这样的,跨域请求,非简单请求(不是
get
、post
或存在多余的头部)时,浏览器会首先进行一个OPTIONS
请求,这个请求来询问跨域是否被允许。Access-Control-Request-Headers
就属于这个请求。当服务器返回允许
Access-Control-Request-*
所列出的项目是(就是返回Access-Control-Allow-*
)后,浏览器会发送你的请求。