且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Axios POST 请求失败,错误状态代码为 500:内部服务器错误

更新时间:2023-09-21 08:57:04

2021 年 2 月.浪费了 2 个小时.对这个著名的互联网图书馆帮助不大.

Feb 2021. Wasted 2 hours on this. Not much help on this famous library on internet.

解决方案:

  • 在catch块中,error总是500 internal server error
  • 因此,使用 error.response.data 而不是 error.
  • In the catch block, the error which will always be 500 internal server error
  • so, use error.response.data instead of error.

代码:

try {
  let result = await axios.post(          // any call like get
    "http://localhost:3001/user",         // your URL
    {                                     // data if post, put
      some: "data",
    }
  );
  console.log(result.response.data);
} catch (error) {
  console.error(error.response.data);     // NOTE - use "error.response.data` (not "error")
}


更新:

我最终编写了一个处理错误的通用函数:

I ended up writing a common function for handing error:

文件:common.app.js

File: common.app.js

export const errorUtils = {
  getError: (error) => {
    let e = error;
    if (error.response) {
      e = error.response.data;                   // data, status, headers
      if (error.response.data && error.response.data.error) {
        e = error.response.data.error;           // my app specific keys override
      }
    } else if (error.message) {
      e = error.message;
    } else {
      e = "Unknown error occured";
    }
    return e;
  },
};

更多信息:https://github.com/axios/axios#handling-errors一个>