发生错误 400(错误请求)时,使用 Axios 从 POST 捕获返回 json

Posted

技术标签:

【中文标题】发生错误 400(错误请求)时,使用 Axios 从 POST 捕获返回 json【英文标题】:Catch return json from POST with Axios when error 400 (Bad Request) occurs 【发布时间】:2019-12-03 15:35:56 【问题描述】:

我正在使用带有 Axios 的 React Native 在 api 中发出 http 请求,我可以在回调为 200 时获取 json 并解析它,但是,例如,当我调用一个方法时,例如注册用户和从已经注册的用户那里收到一封电子邮件,他给我返回了一个错误 400(错误请求),但他也带来了一个带有错误消息的 json(“用户已经注册”)。我需要收到此错误消息,因为它在 API 中是可变的并显示给用户,但是当我尝试给它一个 console.log 时,我收到以下错误:

json 的返回是这样的:

我的调用代码如下所示:

即使在 catch 中返回 400,如何获取这个 json?

谢谢。

【问题讨论】:

【参考方案1】:

在您的 catch 块内,error 对象还为您提供响应正文

//... your request here
.catch(error => 
  console.log('response: ', error.response.data);
);

console.log(error) 正在调用错误对象的 toString 方法,该方法不会向您显示响应正文。

error.response.data 应该为您提供正确的内容。看看this part of the axios docs

【讨论】:

以上是关于发生错误 400(错误请求)时,使用 Axios 从 POST 捕获返回 json的主要内容,如果未能解决你的问题,请参考以下文章

在 Express.js 上使用 Axios 向 Spotify API 发出 POST 请求时出现错误 400

Gitlab使用Axios或Curl请求发布/放入节点 - 无法写入资源 - 400错误

axios.post 显示错误“请求失败,状态码为 400”,但邮递员发布了相同的数据

在第二个 axios api 调用上获取错误 400 错误请求

Axios POST状态400错误请求[重复]

axios.post 返回 400 React Native 的错误请求