欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > axios如何取消请求、配置

axios如何取消请求、配置

2025/2/12 21:48:37 来源:https://blog.csdn.net/m0_52872381/article/details/145571594  浏览:    关键词:axios如何取消请求、配置

        Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js。在实际开发中,有时候需要取消已经发起的请求,同时也需要对请求进行各种配置。以下分别介绍 Axios 取消请求和配置请求的方法。

取消请求

  1. 使用 CancelToken(旧方法)

                 在 Axios 旧版本中,使用 CancelToken 来取消请求。CancelToken 是 Axios 提供的一个用于取消请求的工具。

// 创建一个 CancelToken 源
const CancelToken = axios.CancelToken;
const source = CancelToken.source();// 发起请求,并传入 CancelToken
axios.get('https://api.example.com/data', {cancelToken: source.token
})
.then(response => {console.log(response.data);
})
.catch(error => {if (axios.isCancel(error)) {console.log('请求已取消:', error.message);} else {console.log('请求出错:', error.message);}
});// 取消请求
source.cancel('用户取消了请求');
2. 使用 AbortController(新方法)

        从 Axios v0.22.0 开始,支持使用 AbortController 来取消请求,这是一种更现代的方法,与浏览器的 fetch API 取消请求的方式一致。

// 创建一个 AbortController 实例
const controller = new AbortController();
const signal = controller.signal;// 发起请求,并传入 signal
axios.get('https://api.example.com/data', {signal: signal
})
.then(response => {console.log(response.data);
})
.catch(error => {if (error.name === 'AbortError') {console.log('请求已取消');} else {console.log('请求出错:', error.message);}
});// 取消请求
controller.abort();

请求配置

1. 全局配置

可以在创建 Axios 实例时进行全局配置,这样所有通过该实例发起的请求都会使用这些配置。

import axios from 'axios';// 创建一个 Axios 实例,并进行全局配置
const instance = axios.create({baseURL: 'https://api.example.com', // 请求的基础 URLtimeout: 5000, // 请求超时时间,单位为毫秒headers: {'Content-Type': 'application/json'}
});// 使用实例发起请求
instance.get('/data')
.then(response => {console.log(response.data);
})
.catch(error => {console.log('请求出错:', error.message);
});
2. 单个请求配置

在发起单个请求时,也可以传入特定的配置,这些配置会覆盖全局配置。

import axios from 'axios';// 发起单个请求,并传入特定配置
axios.get('https://api.example.com/data', {timeout: 3000, // 该请求的超时时间为 3 秒headers: {'Authorization': 'Bearer your_token'}
})
.then(response => {console.log(response.data);
})
.catch(error => {console.log('请求出错:', error.message);
});
3. 常用配置选项
  • url:请求的 URL 地址。
  • method:请求的方法,如 getpostputdelete 等,默认为 get
  • baseURL:请求的基础 URL,会与 url 拼接成完整的请求地址。
  • headers:请求头信息,是一个对象。
  • params:URL 参数,会被拼接在 URL 后面。
  • data:请求体数据,用于 postput 等方法。
  • timeout:请求超时时间,单位为毫秒。
  • responseType:响应数据的类型,如 jsontextblob 等,默认为 json
  • axios({url: '/user',method: 'post',baseURL: 'https://api.example.com',headers: {'Content-Type': 'application/x-www-form-urlencoded'},params: {id: 123},data: {name: 'John Doe',age: 30},timeout: 5000,responseType: 'json'
    })
    .then(response => {console.log(response.data);
    })
    .catch(error => {console.log('请求出错:', error.message);
    });

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com