You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API请求返回404状态码无响应,如何不跳转页面用window.confirm处理?

问题原因

你使用的HTTP请求库(通常是axios)默认配置下,当接口返回4xx、5xx等非2xx状态码时,会直接抛出Promise异常,await 后的代码会直接中断执行,不会进入后续的响应判断逻辑,因此你写的各类 response 判断条件永远无法触发。

解决方案

方案1:用try/catch捕获异常(推荐,无需修改全局配置)

直接包裹异步请求代码,在错误捕获逻辑中判断状态码:

try {
  const response = await instance.get(`?q=${q}&appid=${appid}`);
  // 2xx正常状态的业务逻辑写在这里
} catch (error) {
  // 匹配404状态码
  if (error.response && error.response.status === 404) {
    window.confirm("not found");
    console.log("ceren");
  }
  // 其他错误的处理逻辑可以在此补充
}

方案2:修改请求库配置,让404不抛出异常

如果是axios实例,可以在初始化时添加 validateStatus 配置,指定所有状态码都正常返回响应:

const instance = axios.create({
  // 你的原有配置
  validateStatus: () => true // 所有状态码都走resolve逻辑,不抛错
})

修改配置后就可以直接判断响应状态码:

const response = await instance.get(`?q=${q}&appid=${appid}`);
if (response.status === 404) {
  window.confirm("not found");
  console.log("ceren");
}

内容的提问来源于stack exchange,提问作者Ceren Keklik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:15:03