axios请求
安装 Axios
在项目中安装 Axios 依赖,可以通过 npm 或 yarn 进行安装。
npm install axios
或
yarn add axios
引入 Axios
在需要使用 Axios 的文件中引入 Axios。
import axios from 'axios';
发起 GET 请求
使用 Axios 发起 GET 请求,获取数据。
axios.get('https://api.example.com/data').then(response => {console.log(response.data);}).catch(error => {console.error(error);});
发起 POST 请求
使用 Axios 发起 POST 请求,发送数据到服务器。
axios.post('https://api.example.com/data', { key: 'value' }).then(response => {console.log(response.data);}).catch(error => {console.error(error);});
配置全局默认值
设置 Axios 的全局默认配置,例如 baseURL 和 headers。
axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = 'Bearer token';
创建 Axios 实例
创建自定义的 Axios 实例,用于不同的 API 配置。
const api = axios.create({baseURL: 'https://api.example.com',timeout: 1000,headers: { 'X-Custom-Header': 'foobar' }
});api.get('/data').then(response => {console.log(response.data);});
处理请求和响应拦截器
使用拦截器在请求或响应被处理前进行统一处理。
axios.interceptors.request.use(config => {config.headers.Authorization = 'Bearer token';return config;
}, error => {return Promise.reject(error);
});axios.interceptors.response.use(response => {return response.data;
}, error => {return Promise.reject(error);
});
取消请求
使用 CancelToken 取消正在进行的请求。
const CancelToken = axios.CancelToken;
const source = CancelToken.source();axios.get('https://api.example.com/data', {cancelToken: source.token
}).catch(error => {if (axios.isCancel(error)) {console.log('Request canceled', error.message);}
});source.cancel('Operation canceled by the user.');
并发请求
使用 axios.all
和 axios.spread
处理并发请求。
axios.all([axios.get('https://api.example.com/data1'),axios.get('https://api.example.com/data2')
]).then(axios.spread((response1, response2) => {console.log(response1.data, response2.data);
}));
错误处理
统一处理请求中的错误,包括网络错误和服务器错误。
axios.get('https://api.example.com/data').then(response => {console.log(response.data);}).catch(error => {if (error.response) {console.error(error.response.status, error.response.data);} else if (error.request) {console.error(error.request);} else {console.error(error.message);}});