当前位置: 首页 > 知识库问答 >
问题:

Axios。在try catch finally中,如何在api返回404错误时获得错误响应

颜宸
2023-03-14

对于例如。

(async() => {
  let apiRes = null;
  try {
    apiRes = await axios.get('https://silex.edgeprop.my/api/v1/a');
  } catch (err) {
    console.error(err);
  } finally {
    console.log(apiRes);
  }
})();

finally中,apiRes将返回null。

即使api得到404响应,响应中仍然有我想要使用的有用信息。

当axios抛出错误时,如何使用finally中的错误响应。

https://jsfiddle.net/jacobgoh101/fdvnsg6u/1/

共有2个答案

姜宏盛
2023-03-14

根据AXIOS文档(此处:https://github.com/axios/axios)您可以将config对象中的validateStatus:false传递给任何axios请求。

例如。

axios.get(url, { validateStatus: false })
axios.post(url, postBody, { validateStatus: false })

您也可以通过这样的函数validateState:(state)=

轩辕庆
2023-03-14

根据文档,完整响应作为错误的response属性提供。

所以我会在cat块中使用这些信息:

(async() => {
  let apiRes = null;
  try {
    apiRes = await axios.get('https://silex.edgeprop.my/api/v1/a');
  } catch (err) {
    console.error("Error response:");
    console.error(err.response.data);    // ***
    console.error(err.response.status);  // ***
    console.error(err.response.headers); // ***
  } finally {
    console.log(apiRes);
  }
})();

更新小提琴

但是,如果您想将它放在最后中,只需将其保存到一个变量中即可:

(async() => {
  let apiRes = null;
  try {
    apiRes = await axios.get('https://silex.edgeprop.my/api/v1/a');
  } catch (err) {
    apiRes = err.response;
  } finally {
    console.log(apiRes); // Could be success or error
  }
})();
 类似资料:
  • 404错误不会作为库中的直接返回,而是作为错误抛出在捕获中。我的问题是现在我可以以某种方式在捕获中查询,错误有哪个数字? 或者如何使用axios库查询它是否是404错误?

  • JSoup-1.8.1 尝试{ Document Document=Jsoup.connect(url.get(); 返回Document.getElementsByTag(“title”).text(); }catch(异常e){ System.out.println(e); 返回null; } org.jsoup.HttpStatusExc0019: HTTP错误获取URL。状态=404, U

  • 在我的Spring Boot 2.2. x Web应用程序中,我需要拦截404错误,以便在呈现错误页面或返回带有错误信息的json之前执行一些自定义逻辑。 实现这一点的正确方法是什么? 目前,我正在尝试使用类,但我不知道使用(如果抛出了任何异常)处理哪个异常。。。 注意:我已经尝试拦截,但这似乎不起作用...(未触发处理程序)。 我还在<code>应用程序中启用了此功能。属性: 还有其他建议吗?

  • 我有一个运行在后端的Node/Express服务器和一个react前端,我正在尝试制作最简单的API——但无论我做什么,我似乎都在post请求中遇到了404错误。我已尝试将代理添加到包中。json,删除代理并在地址i中包含端口。。Ehttp://localhost:5000/createaccount,包括http://localhost:5000只需在post请求中使用“/createaccou

  • 问题内容: 我通过jQuery AJAX将一些数据发布到PHP脚本中,并且一切正常执行,但是返回了404错误。在我的Firebug控制台中,PHP脚本的响应是正确的。我不了解该脚本如何响应,它仍然会引发404错误。jQuery的“错误”回调方法将触发,而“成功”方法则不会触发。 PHP脚本执行的所有语句都能正常工作,因为我可以看到数据库正在更新等。 我在Dreamhost托管的WordPress

  • 我尝试使用AlmoFire向web服务发布设备令牌和设备详细信息。但我得到了如下的回应 UserInfo={nsUnderlyingError=0x7FBA3A590E50{Error domain=KCFerrordomainCFNetwork code=-1022“(null)”},nserrorFailingURLStringKey=http://---/Register,nserrorFa

  • 但如果我使用get/curl,则可以成功返回响应: {“KIND”:“POD”,“APIVersion”:“V1”,“Metadata”:{“Name”:“TAS-Core”,“Namespace”:“Default”,“SelfLink”:“/API/V1/Namespaces/Default/PODS/TAS-Core”,“UID”:“A264CE8E-A956-11E5-8293-00505

  • 问题内容: 我正在使用带有jQuery的ASP.NET MVC。我有以下MVC操作,返回成功页面的一部分。关于“应用程序错误”,我不确定要在客户端正确处理它的方式发送什么: 以下是我的jQuery ajax调用。请注意,我正在检查数据长度以确保没有错误。请建议我这样做的更好方法。 问题答案: 我会在您的ajax调用设置中添加一个错误函数。让服务器确定要显示的错误消息,然后将其传递给ajax错误处理