赞
踩
哈喽大家好啊,最近做Vue项目看到axios
axios官网:起步 | Axios 中文文档 | Axios 中文网 (axios-http.cn)
重要点:
axios是基于Promise封装的
axios能拦截请求和响应
axios能自动转换成json数据
等等
安装:
$ npm install axios
- import axios from 'axios';// 引入axios
-
- const httpAxios = axios.create({});// 创建实例
-
- let config = {
- TIMEOUT: 600000,//设置超时时间为10min
- };
-
- // axios 配置超时时间
- httpAxios.defaults.timeout = config.TIMEOUT;
-
- // axios设置 请求拦截
- httpAxios.interceptors.request.use(
- // config配置选项
- config => {
- console.log(config,'1')
- return config;
- },
- // error
- error => {
- return Promise.reject(error);
- }
- )

- // axios响应拦截
- httpAxios.interceptors.response.use(
- // response响应成功
- response => {
- const config = response.config;
- console.log(config,'2')
- return response;
- },
- // 响应error
- error => {
- const config = error.config;
- console.log(config,'3')
- if(error.message.includes('timeout')) {
- return Promise.reject('timeout');// reject这个错误信息
- // 判断请求异常信息中是否含有超时timeout字符串
- }
- return Promise.reject('网络链接失败,请稍后再试!')
- }
- )

- export const getHttpInfo = function (data) {
- return new Promise((resolve, reject) => {
- let token = ''
- if (data.headers) {
- token = data.headers.Authorization
- }
- httpAxios(data).then((res) => {
- resolve(res)
- }).catch((e) => {})
- })
- }
- gethttpInfo({
- method: 'post',
- url: url,
- data: this.order,
- headers: {
- 'Authorization': localStorage.getItem('token')
- }
- }).then((res) => {
- }).catch((error) => {
- this.$message({
- type: 'warning',
- message: error!=='timeout' ? error : '其他错误'
- })
- });
参考原文:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。