Vue 请求传公共参数的操作
我就废话不多说了,大家还是直接看代码吧~
//Anhighlightedblock
//httprequest拦截器
axios.interceptors.request.use(
config=>{
consttoken=window.sessionStorage.getItem('Tk_token')
constuser_id=window.sessionStorage.getItem('Tk_user_id')
//config.data=JSON.stringify(config.data);
//config.headers={
//'Content-Type':'application/x-www-form-urlencoded'
//}
if(token){
config.params={'token':token,'user_id':user_id}
}
console.log(config);
returnconfig;
},
err=>{
returnPromise.reject(err);
}
)
补充知识:Vue联合axios发送后台post请求时的参数问题
开始用的是vue-resource,后来发现这个已经很久没有更新了,作者已经停止更新了,而且就连作者也推荐用axios,那么我就用axios吧,改成axios之后,就出现了一个问题:参数问题。
怎么个参数问题呢?用vue-response来发送post请求的时候,传入的参数到后台是一个一个分开的,比如传了参数
{
username:'name1',
password:'pwd1'
}
就是很简单的用户名和密码,vue-resource传到后台之后,后台的接口方法参数是两个,一个是username,一个是password,都可以分别取到;但是axios不同,axios到后台之后,是一个map结构的对象,需要用@RequestBodyMapmap这种方式来获取,然后从map中一个一个取出来,这样也可以。但是有没有办法让axios传给后台的参数也是一个一个的呢?当然有。
第一个方法就是URLSearchParams,用这个添加好参数,到后台就是一个一个的,但是这个IE不支持。
还有一个办法,就是qs,qs的话有两种引入方式,一种就是用npm安装好后,直接import,然后就可以用了;另一种就是在页面直接引入qs.js,就是
注意了!
这里要注意了!
如果是import方式引入的,我们就用qs.stringify调用就好了,但是!!!
注意了!
如果是js文件引入的方式,用的Qs,不是qs,Q是大写的Q,也就是Qs.stringify。
然后就可以了!
以上这篇Vue请求传公共参数的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。