我正在向我的本地发送一个发布请求到另一个域。 (我在开发模式下使用 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 查询,但我似乎无法获得与状态一起返回的正文。
没关系console.log('ERROR::', error.response.data);
做了这项工作,我希望这将被清楚地记录下来。
@samayo感谢您回答这个问题。 这让我发疯了,使用简单的 XHR 请求可以很好地获取错误响应,但是当使用 axios 时,我想知道为什么我不能在错误时得到响应,你回答得很好。 同意它应该更容易在文档中找到。
当我使用异步等待语法发送发布请求时,如果 res 状态为 200,它会发回响应正文,但当响应状态为 400 时,它不会发送响应正文。 如何使用异步等待语法获取错误?
最有用的评论
没关系
console.log('ERROR::', error.response.data);
做了这项工作,我希望这将被清楚地记录下来。