首页 > 解决方案 > 失败的 Axios 获取请求的控制台日志原始数据

问题描述

我想向运行 Flask 的私有服务器发出 Axios 获取请求。如果后端出现内部错误,它会返回一个响应对象和一个错误代码。:

response_object = {
    "Success": False,
    'error': err.message
}
return response_object, 400

服务的 response_object 应该可以被前端 (React.js) 访问。

axios
  .get(`http://127.0.0.1:5000/data`, {
    data: null,
    headers: { "Content-Type": "application/json" }
  })
  .then(response => {
    console.log(response);
  })
  .catch(function(error) {
    console.log(error.toJSON());
  });

我希望错误包括响应对象。如果在浏览器中手动访问 URL,则错误数据是可见的。如果后端没有错误,则获取请求可以正常工作。在谷歌搜索了一段时间后,我发现了一些可能与上述问题有关的问题。(这就是为什么在 get 请求中传递空数据的原因)。 https://github.com/axios/axios/issues/86 https://github.com/axios/axios/issues/86 请注意,我是自学的,所以我可能会在这里错过一些明显的东西。谢谢大家,一切顺利。

标签: javascripterror-handlinggetaxios

解决方案


我将在此处复制/粘贴我的评论,以便其他人可以轻松看到问题的答案


如果它抛出的是400 状态码(您可以使用浏览器中的 Network 选项卡确认),它将落入 catch 块,唯一需要担心的是toJSON()调用...只需简单console.log(error.message)检查一下您是否得到那里...

我给你留下一个简单的例子,这样你就可以看到实际情况

更多信息:

  • 在 Axios 中,响应文本位于response.data
  • 如果您接收的是 JSON,response.data则会自动解析
  • 您不需要传递data: null,因为这是默认行为,并且不会在GET调用中使用(您不会在 GET 调用中传递正文)

推荐阅读