axios 请求数据,返回数据 data为空怎么办

axios 请求数据,返回数据 data为空

同样的借口用jq的ajax调用就是好的

$.ajax({
            url: '/yzh/inter/login',
            type: 'post',
            data: {'userName': username, 'passWord': password},
            success: function (res) {
                console.log(res);
            }
        });

图片描述

下边是axios的发送

var config = {
       headers: {
             'Content-Type': 'application/x-www-form-urlencoded'
       },
       responseType: 'json',// default
       method: 'post'
};

axios.post('/yzh/inter/login', {
    userName: this.ruleForm.username,
    passWord: this.ruleForm.password                           
},config)
.then((res) => {
    //if (res) {
      //state.username = res.data.data
      console.log("haha",res)
   // }
})

返回结果中 data为null

图片描述

请问这个问题怎么解决啊。。

阅读 25.9k
13 个回答

这是一个非常简单却经常被人忽略的问题,根本原因就是

返回数据不是标准的 JSON
返回数据不是标准的 JSON
返回数据不是标准的 JSON

重要的事情说三遍,三遍,三遍!!!

下面是标准 JSON 格式示例

{
    "data": [
        {
            "bannerId": "1",
            "bannerImg": "https://i.loli.net/2019/08/08/2FHlzwr5ipLYgfM.jpg"
        },
        {
            "bannerId": "2",
            "bannerImg": "https://i.loli.net/2019/08/08/2FHlzwr5ipLYgfM.jpg"
        }
    ],
    "msg": "success"
}

下面是非标准格式示例:

{
    data: [
        {
            "bannerId": "1",
            "bannerImg": "https://i.loli.net/2019/08/08/2FHlzwr5ipLYgfM.jpg",
        },
        {
            "bannerId": "2",
            "bannerImg": "https://i.loli.net/2019/08/08/2FHlzwr5ipLYgfM.jpg",
        }
    ],
    "msg": "success",
}

JSON 格式一定是一个标准的 Stringkey 一定是以双引号开头的字符串,最后一个属性末尾不能有逗号


如何判断是否标准 JSON 格式?

  • 打开 https://www.json.cn 这个 JSON 格式校验网站(或其他正规的 JSON 格式校验网站),把自己的数据复制进去,校验成功即可。

请问楼主的问题解决了吗?我也遇到了同样的问题

新手上路,请多包涵

请问楼主的问题解决了吗?我也遇到了同样的问题

图片描述是否在config设置了transformResponse 转换,没有return data。 就会返回undefiend。本人已验证跳过坑。

估计哪里写法不对

新手上路,请多包涵

尝试在server端分析,把接收到的参数打印出来看看是否一致

传递数据格式的问题,axios 默认 application/json 而如果后端 需要application/x-www-form-urlencoded 可以通过 qs 或者 URLSearchParams 处理数据格式

我的get请求也出现了同样问题,在浏览器中访问有返回值,用axios调用却没返回值

  1. 浏览器访问

图片描述

  1. axios访问

图片描述

新手上路,请多包涵

你的响应类型 axios.defaults.responseType='json'; ,要和请求类型一致才不会空headers: {'Content-Type': 'json'},

新手上路,请多包涵

这是一个非常简单却经常被人忽略的问题,根本原因就是

返回数据不是标准的 JSON
返回数据不是标准的 JSON
返回数据不是标准的 JSON

重要的事情说三遍,三遍,三遍!!!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题