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

Node.js抛出ERR_UNHANDLED_REJECTION错误,请求403状态码如何解决?

解决Node.js中Axios 403未处理Promise拒绝问题

先解决未处理Promise拒绝(阻止程序崩溃)

这个报错的直接原因是Promise拒绝未被捕获,先补上错误处理避免程序崩溃:

方式1:使用.then().catch()链式调用

axios.get('目标请求地址')
  .then(res => {
    // 正常处理响应逻辑
  })
  .catch(err => {
    console.error('请求失败:', err);
    // 可在此针对性处理403错误
  });

方式2:async/await配合try/catch

async function fetchResource() {
  try {
    const res = await axios.get('目标请求地址');
    // 正常处理响应逻辑
  } catch (err) {
    console.error('请求失败:', err);
    if (err.response?.status === 403) {
      // 专门处理403场景
    }
  }
}

全局兜底(临时救急,不替代局部捕获)

如果暂时找不到未捕获的Promise,可先加全局监听避免崩溃:

process.on('unhandledRejection', (reason, promise) => {
  console.error('未处理的Promise拒绝:', reason);
});

排查并解决403状态码根源

403是服务端返回的「禁止访问」,常见原因和解决方法:

  • 身份验证失败:检查请求头是否携带有效凭证(如Authorization: Bearer <token>或API-Key: <密钥>),确认凭证未过期、权限足够。
  • 请求头不合法:部分服务会校验User-Agent、Referer等字段,模拟正常浏览器的请求头试试。
  • 资源路径/参数错误:确认请求的URL和参数符合服务端要求,比如是否访问了不属于你的私有资源。
  • 触发反爬机制:如果是第三方公开API,可能请求频率过高,降低请求频率(比如加setTimeout延迟),或按要求完成验证。
  • 权限配置问题:如果是自建服务,检查后端路由的权限规则,确认当前用户有访问该资源的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:30:55