Axios: 无法从 axios 响应中获取正文

创建于 2017-08-17  ·  3评论  ·  资料来源: axios/axios

概括

我正在向我的本地发送一个发布请求到另一个域。 (我在开发模式下使用 Chrome 来绕过 Cors 问题)

这是我的代码:

axios('https://..../signup', {
    method: 'POST',
    data: {
    email: '[email protected]',
    password: 'fdsfds',
    confirmPassword: 'fdsfds'
  }

}).then(function(response) {
  console.log('response::', response.data);
})
  .catch(function(error) {
  console.log('ERROR::', error.data);
});

问题是我只得到状态400 (Bad Request)作为响应,而如果我要通过 curl cli/postman 发送相同的请求,我会得到状态加上一个像这样的正文:

[
    {
        "param": "email",
        "msg": "Email is not valid"
    },
    {
        "param": "password",
        "msg": "Password must be at least 4 characters long"
    },
    {
        "param": "confirmPassword",
        "msg": "Passwords do not match"
    }
]

但不适用于 axios。 这不可能是 Cors 问题,因为我可以很好地进行 get/post 查询,但我似乎无法获得与状态一起返回的正文。

语境

  • axios 版本:“^0.16.2”,*
  • 环境:*node v6.9.4,chrome 54,windows 7

最有用的评论

没关系console.log('ERROR::', error.response.data);做了这项工作,我希望这将被清楚地记录下来。

所有3条评论

没关系console.log('ERROR::', error.response.data);做了这项工作,我希望这将被清楚地记录下来。

@samayo感谢您回答这个问题。 这让我发疯了,使用简单的 XHR 请求可以很好地获取错误响应,但是当使用 axios 时,我想知道为什么我不能在错误时得到响应,你回答得很好。 同意它应该更容易在文档中找到。

当我使用异步等待语法发送发布请求时,如果 res 状态为 200,它会发回响应正文,但当响应状态为 400 时,它不会发送响应正文。 如何使用异步等待语法获取错误?

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

helmus picture helmus  ·  3评论

airtonix picture airtonix  ·  3评论

reggi picture reggi  ·  3评论

9tor picture 9tor  ·  3评论

tbaustin picture tbaustin  ·  3评论