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

NuxtJs中如何获取useFetch的响应状态码?

在Nuxt.js的useFetch中检查响应状态码

要获取useFetch请求的响应状态码,可针对成功、错误两种场景分别处理:

1. 成功响应时获取状态码

useFetch返回的结果里,response属性包含完整的响应对象,直接从中读取status字段即可:

const { data, error, response } = await useFetch(url, options);

if (!error.value) {
  const statusCode = response.value?.status;
  console.log('响应状态码:', statusCode);
  console.log('返回数据:', data.value);
}

2. 错误响应时获取状态码

当请求返回4xx/5xx这类错误状态码时,error.value会携带包含response属性的对象,从中提取状态码:

const { data, error, response } = await useFetch(url, options);

if (error.value) {
  const statusCode = error.value?.response?.status;
  console.error('错误状态码:', statusCode);
  console.error('错误信息:', error.value.message);
  
  // 按状态码做针对性处理
  if (statusCode === 403) {
    // 处理权限不足逻辑
  } else if (statusCode === 404) {
    // 处理资源不存在逻辑
  }
}

适配你原有链式调用的写法

如果习惯用.then()链式写法,可修改为:

useFetch(url, options).then((res) => {
  const data = res.data.value;
  const error = res.error.value;
  const response = res.response.value;

  if (error) {
    const statusCode = error.response?.status;
    console.error('错误状态码:', statusCode);
    console.error('错误详情:', error);
  } else {
    const statusCode = response?.status;
    console.log('响应状态码:', statusCode);
    console.log('返回数据:', data);
  }
}).catch((err) => {
  // 捕获网络层面异常(如请求超时、DNS失败)
  const statusCode = err.response?.status;
  console.error('请求出错,状态码:', statusCode);
  console.error('错误信息:', err);
});

注意:若遇到网络层面的异常(如请求无法发送),error.response可能为undefined,需用可选链?.避免报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:20:30