"use strict";
import axios from "axios";
import qs from "qs";
axios.interceptors.request.use((config) => {
// 接口包含login就换请求头 随便改就好 不固定
if(config.url.includes('/login/')){
// console.log('config',config.baseURL)
config.baseURL = '/login/'
}else{
config.baseURL = '/api/'
}
return config;
}, function (error) {
// Do something with request error
return Promise.reject(error);
});
// 拦截响应
axios.interceptors.response.use(res => {
const code = res.data.code
return res;
}, function(error) {
return Promise.reject(error);
});
var CancelToken = axios.CancelToken;
var source = CancelToken.source();
// 组件销毁时 结束get 请求
// CancelToken get方式在第二个参数,post在第三个参数
var clearGet = function(url) {
return new Promise((resolve) => {
axios.get(url, {
cancelToken: source.token
}).then(res => {
resolve(res.data);
}).catch(err => {
if (axios.isCancel(err)) {
// window.console.log('Request canceled', err.message);
} else {
// 处理错误
}
})
})
}
// get 请求
var 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 请求
var post = function post(url, params,headers) {
return new Promise((resolve, reject) => {
axios.post(url, qs.stringify(params),headers)
.then(res => {
resolve(res.data);
})
.catch(err => {
reject(err.data)
})
});
}
// post 上传数组
var arrPost = function arrPost(url, data, param, config) {
config.params = param;
return new Promise((resolve, reject) => {
axios.post(url, data, config)
.then(response => {
resolve(response.data)
})
.catch(err => {
reject(err)
})
})
}
// post上传formdata数据
var formDataPost = function formDataPost(url, params,headers) {
return new Promise((resolve, reject) => {
axios.post(url,params,headers)
.then(res => {
resolve(res.data);
})
.catch(err => {
reject(err.data)
})
});
}
// 删除
var del = function deletes(url) {
return new Promise((resolve, reject) => {
axios.delete(url)
.then(res => {
resolve(res.data);
})
.catch(err => {
reject(err.data)
})
});
}
export default {
get,
post,
del,
arrPost,
clearGet,
source,
CancelToken,
formDataPost
}
axios 封装 拦截请求,上传数组,上传formdata
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...