Vue使用axios添加请求头方式
作者:beihcengnans
这篇文章主要介绍了Vue使用axios添加请求头方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
使用axios添加请求头
import axios from 'axios'
const service = axios.create({
baseURL: process.env.VUE_APP_API, // 请求的接口
timeout: 100000 // 请求超时时间
})
// 使用拦截器,定义全局请求头
service.interceptors.request.use(config => {
// 在请求头中添加token
config.headers.Authorization = window.localStorage.getItem("user")
return config
})
// 设置 Vue.prototype.$http 为 axios 的别名:
Vue.prototype.$http=service this.$http({
url: "url",
params: {
bookNumber: this.booknum
}
})
.then(res => {
// 成功
})
.catch(err => {
// 失败
});axios添加自定义头部出现的问题
在浏览器的http的 GET, POST的跨域请求中,添加自定义头部,发送不是字符串,fromData的数据时,都是非简单请求。
浏览器都预先发出OPTIONS(预检安全请求)。
所以我们在axios中添加自定义头部时候需要后端返回OPTIONS请求允许才进行POST或GET请求。
后端中只需要对OPTIONS请求做出允许自定义头部和状态200即可。
if(req.method==='OPTIONS'){
res.writeHead(200,{
//允许跨域
"Access-Control-Allow-Origin":"*",
"Access-Control-Allow-Credentials":"true",
//允许请求类型
"Access-Control-Allow-Methods":"*",
//允许自定义头部
'Access-Control-Allow-Headers':"*",
'Access-Control-Expose-Headers':'*'
})
res.end();
}以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
