Axios拦截器之error参数

我们都知道Axios的响应拦截器

axios.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    return response;
  },
  function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

 

但是打印error却是 "Uncaught (in promise) Error: Request failed with status code 404" 这种文字报错。没办法根据请求的参数做一些特定的error逻辑处理,看API文档也没有相关的说明,百度也没有搜到。

其实error处理函数中也是有response的,这个参数隐藏的比较深,我们用 Object.keys( error ) 就能看到,error也是有属性名的:["config", "request", "response", "isAxiosError", "toJSON"],这里就可以愉快的用error.response去做判断啦

 

axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 node.js 中发送异步 HTTP 请求。拦截器(Interceptors)是 axios 提供的一个非常实用的功能,允许你拦截请求或响应,并且在它们到达 `then()` 或 `catch()` 之前修改它们。 使用 axios 拦截器的基本步骤如下: 1. 在发送请求或响应之前执行某些逻辑,你可以定义请求拦截器。 2. 在请求或响应完成之前修改它们,你可以定义响应拦截器。 以下是如何使用 axios 拦截器的示例代码: ```javascript // 引入 axios import axios from 'axios'; // 创建 axios 实例 const service = axios.create({ baseURL: '/api', // API 的基础路径 timeout: 5000 // 请求超时时间 }); // 请求拦截器 service.interceptors.request.use( config => { // 在发送请求之前做些什么,例如添加 token 到请求头 const token = 'Bearer your-token'; if (token) { config.headers['Authorization'] = token; } return config; }, error => { // 对请求错误做些什么 return Promise.reject(error); } ); // 响应拦截器 service.interceptors.response.use( response => { // 对响应数据做点什么,例如响应头处理等 const res = response.data; // 根据业务需求可以对返回的 res 进行一些处理 return res; }, error => { // 对响应错误做点什么 // 例如:服务器返回错误,或者网络超时等情况 return Promise.reject(error); } ); // 使用 service 发送请求 service.get('/user/12345') .then(response => { console.log(response); }) .catch(error => { console.error(error); }); ``` 通过上述代码,你可以在请求被发送之前添加一些特定的头信息,例如认证 token。同样地,你可以在响应返回之前对其进行一些处理,比如判断状态码,或者统一处理错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值