axios的底层ajax,XMLHttpRequest原理解释及使用方法
Axios是一个基于Promise的HTTP客户端,用于浏览器和node.js环境。它使用XMLHttpRequests在浏览器中工作,而在node.js中使用http模块。
XMLHttpRequest是一个构造函数,创建一个JavaScript对象,这个对象对HTTP网络请求的状态变化进行监控,并且用JavaScript处理这些变化。
使用方法:
- 安装axios
npm install axios
- 使用axios发送GET请求
axios.get('http://api.example.com/data')
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
});
- 使用axios发送POST请求
axios.post('http://api.example.com/data', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
- 使用axios并发请求
function getData(url) {
return axios.get(url);
}
axios.all([getData('http://api.example.com/data1'), getData('http://api.example.com/data2')])
.then(axios.spread(function (data1, data2) {
console.log(data1);
console.log(data2);
}))
.catch(function (error) {
console.log(error);
});
- 使用axios取消请求
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
axios.get('http://api.example.com/data', {
cancelToken: source.token
})
.catch(function (thrown) {
if (axios.isCancel(thrown)) {
console.log('Request canceled', thrown.message);
} else {
// handle other errors
}
});
// cancel the request
source.cancel('Operation canceled by the user.');
- 使用axios设置请求转换器
axios.interceptors.request.use(function (config) {
// Do something before request is sent
return config;
}, function (error) {
// Do something with request error
return Promise.reject(error);
});
- 使用axios设置响应转换器
axios.interceptors.response.use(function (response) {
// Any status code that lie within the range of 2xx cause this function to trigger
// Do something with response data
return response;
}, function (error) {
// Any status codes that falls outside the range of 2xx cause this function to trigger
// Do something with response error
return Promise.reject(error);
});
以上就是axios的基本使用方法,更多的功能和细节可以查看axios的官方文档。
评论已关闭