【问题标题】:React/Axios receive response status and JSON like PostmanReact/Axios 像 Postman 一样接收响应状态和 JSON
【发布时间】:2020-11-07 15:32:32
【问题描述】:

我的端点将发送如下响应:

res.status(400).json({"note","this email is already taken"});

使用 React 我使用 axios 如下

export const signUpUser = (email, password) => {
   const headers = {
      "Content-Type": "text/plain",
   };

   return axios
      .post(
         https://domain.something + "/signup",
         { email, password },
         { headers ,}
      )
      .then((res) => {
         return res;
      })
      .catch((err) => {
         return err;
      });
};

postman 可以这样解析:

但是我无法通过 react 提取 JSON,这就是控制台日志显示的内容:

【问题讨论】:

  • 创建 de 请求的反应代码是什么?问题似乎是响应抛出异常,因为它是 400 代码,您应该使用“catch”处理这些异常
  • 也是json({note:"this email is already taken"})
  • 您如何检索数据? React 不附带数据访问库。
  • 这种情况下我用的是axios
  • @prabhu 正确的代码是按照你写的那样写的。

标签: javascript json reactjs axios postman


【解决方案1】:

默认 400 是错误请求的代码,请尝试将代码更改为 200 或 2xx。

【讨论】:

  • 我知道这一点,但 Postman 可以解析 400 代码并提供.json,这正是我的问题所在。
【解决方案2】:

经过阅读,我了解到 Axios 进程表达响应的方式与其他库不同。它将响应视为一个对象,并且似乎只采用第一个(链接不起作用)。

解决方案:

            return res.json({
               message: "This email is currently in use.",
               status: 400,
               foo: "bar",
               data: "this is the data",
            })

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 2020-09-16
    • 2023-03-30
    • 2013-08-26
    • 2020-04-21
    相关资源
    最近更新 更多