📅  最后修改于: 2023-12-03 14:39:26.231000             🧑  作者: Mango
Axios是一个基于Promise的HTTP客户端,可以用于浏览器和node.js。它有以下特点:
npm install axios
创建一个基本的GET请求:
axios.get('/user?ID=12345')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
发送POST请求:
axios.post('/user', {
firstName: 'John',
lastName: 'Doe'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
可以为请求和响应添加拦截器:
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
// 对请求做些什么
return config;
}, function (error) {
// 错误处理
return Promise.reject(error);
});
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
// 对响应数据做些什么
return response;
}, function (error) {
// 错误处理
return Promise.reject(error);
});
可以使用自定义配置创建新的Axios实例:
const instance = axios.create({
baseURL: 'https://some-domain.com/api/',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
instance.get('/user?ID=12345')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
可以使用CancelToken取消请求:
const { CancelToken } = axios;
const source = CancelToken.source();
axios.get('/user', {
cancelToken: source.token
}).catch(function (thrown) {
if (axios.isCancel(thrown)) {
console.log('Request canceled', thrown.message);
} else {
console.log(thrown);
}
});
// 取消请求
source.cancel('Operation canceled by the user.');
下面是别名方法:
可以自己封装get、post等方法:
import axios from 'axios';
import qs from 'qs';
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
// 封装get方法
function get(url, params){
return new Promise((resolve, reject) =>{
axios.get(url, {
params: params
}).then(res => {
resolve(res.data);
}).catch(err =>{
reject(err.data)
})
});
}
// 封装post方法
function post(url, params) {
return new Promise((resolve, reject) => {
axios.post(url, qs.stringify(params))
.then(res => {
resolve(res.data);
})
.catch(err =>{
reject(err.data)
})
});
}
export default {
get,
post
}