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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。