vue中post请求传值后台为null的解决方法

关于后台传值那些问题:
在完成注册功能的时候遇到了一些问题,原因如下:

 ```
 在向后台发送post请求的时候,后台不能接收到前端的传值(后台接收到的值全部为null)

解决方法:
1.设置请求头header为 “content-type”: “application/x-www-form-urlencoded”
2.使用qs转换格式
config.data = qs.stringify(config.data;
可以看到,qs转换出来的是类似于地址栏的格式。

完整代码:

import qs from "qs";

const axiosHttp = axios.create({
  baseURL: api.baseUrl
  // timeout: 3000,
  // headers: {
  //     'token':
  //     window.localStorage.csmpToken
  // }
});
//添加请求拦截器
axiosHttp.interceptors.request.use(
  config => {
    debugger;
    let access_token =
      "TGT-17-NT70Wd5zhqYkergIWdCuzcPLTjSFJEaxYniqfQYH302LcpGJFc-cas";
    if (config.method == "post") {
      config.headers = {
        token: access_token,
        "content-type": "application/x-www-form-urlencoded"
      };
      config.data = qs.stringify(config.data);
      console.log(config.data)
      
    }
    if (window.localStorage.dzsqToken)
      config.headers.token = window.localStorage.dzsqToken; //localstorage获取token
    config.headers.token = access_token;
    //在发送请求之前做某事
    return config;
  },
  error => {
    //请求错误时做些事
    return Promise.reject(error);
  }
);
发布了21 篇原创文章 · 获赞 4 · 访问量 2733

猜你喜欢

转载自blog.csdn.net/smallico/article/details/102786313