VUE项目axios请求头更改Content-Type操作
我就废话不多说了,大家还是直接看代码吧~
consthttpServer=(opts,data)=>{
consttoken=localStorage.getItem('token')
constPUBLIC=`?token=${token}`
lethttpDefaultOpts=''
varhost=`${process.env.HOST}`
varprot=`${process.env.PORT}`
varbase=host+(prot?":"+prot:"")
if(opts.method==='post'){
httpDefaultOpts={
method:opts.method,
url:`${base}${opts.url}${PUBLIC}`,
headers:{
'Content-Type':'application/text/html;charset=utf-8'//改这里就好了
},
data:data
}
}else{
httpDefaultOpts=opts
}
returnnewPromise(function(resolve,reject){
Axios(httpDefaultOpts).then(
(res)=>{
successState(res)
resolve(res)
}
).catch(
(err)=>{
errorState(err)
reject(err)
}
)
})
}
补充知识:Vue获取并存储服务器返回的AuthorizationToken信息并给每次请求添加上token
由于后台是用jwt的token进行身份权限验证,后台在登录后把token添加响应头里,所以前台需要把这个token存放起来,并给每次请求的请求头添加上token,服务器才能获取token进行身份认证。
前台使用vue项目:
loging.vue(登录组件)
{
submitForm(formName){
this.$axios
.post('/api/admin/login',{
userName:this.ruleForm.userName,
password:this.ruleForm.password
})
.then(successResponse=>{
this.responseResult=JSON.stringify(successResponse.data)
this.msg=JSON.stringify(successResponse.data.msg)
if(successResponse.data.code===200){
this.msg='';
localStorage.setItem('userName',this.ruleForm.userName);
//获取并存储服务器返回的AuthorizationToken信息
varauthorization=successResponse.headers['authorization'];
localStorage.setItem('authorization',authorization);
//登录成功跳转页面
this.$router.push('/dashboard');
}
})
.catch(failResponse=>{})
}
}
main.js(全局配置js):
//自动给同一个vue项目的所有请求添加请求头
axios.interceptors.request.use(function(config){
lettoken=localStorage.getItem('authorization');
if(token){
config.headers['Authorization']=token;
}
returnconfig;
})
这里还需要考虑token过期失效的问题,博主将会在后续另写博客补充。
以上这篇VUE项目axios请求头更改Content-Type操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。