doubleyong
管理员
管理员
  • 最后登录2024-03-15
  • 发帖数1164
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:4498回复:0

[vue]vue中使用axios 发现post 请求,后台获取不了参数

楼主#
更多 发布于:2019-06-05 10:15
问题:vue中使用axios 发现post 请求,后台获取不了参数
代码如下:
this.$axios.post(this.$api.user.UserLogin,
                {
                  userName:this.username,
                  userPassword:this.pwd
               },{
                headers : {
                  'Content-Type':'application/x-www-form-urlencoded'
                }
              }).then((res)=>{
                  if(res.data.returnCode == 200){
                    // 登录成功
                  }else{
                    alert(res.data.message);
                  }
              })
            }
解决方案:   axios 中的post方法,不能直接传递对象,要将对象转成字符串,在进行传递,两种方法
1.  transformRequest方式,自己写将object 转成字符串的方法
this.$axios.post(this.$api.user.UserLogin,
                {
                  userName:this.username,
                  userPassword:this.pwd
               },{
               transformRequest:[
                   function(data){
                        let params = "";
                        var arr = [];
                        for(var key in data){
                            arr.push(key+"="+data[key]);
                        }
                        params = arr.join("&");
                        return params;
                  }
          ] },
              {
                headers : {
                  'Content-Type':'application/x-www-form-urlencoded'
                }
              }).then((res)=>{
                  if(res.data.returnCode == 200){
                    // 登录成功
                  }else{
                    alert(res.data.message);
                  }
              })
            }
2. 使用qs模块

下载qs模块,使用命令 npm install qs -d
然后,使用qs模块
import qs from 'qs'
this.$axios.post(this.$api.user.UserLogin,qs.stringify({
                  userName:this.username,
                  userPassword:this.pwd
               }),{
                headers : {
                  'Content-Type':'application/x-www-form-urlencoded'
                }
              }).then((res)=>{
                  if(res.data.returnCode == 200){
                    // 登录成功
                  }else{
                    alert(res.data.message);
                  }
              })
            }
参考 :http://bugshouji.com/bbs-read-run?tid=528
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号