下面是对axios 封装,不喜勿喷,谢谢
import axios from "axios";
import qs from 'qs';
import store from "../../store"
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
axios.defaults.baseURL = "域名地址";
/**
* 数据请求 拦截器
*/
axios.interceptors.request.use((config) => {
// console.log(config);
if (config.method === 'post'){
// console.log(config.url);
if(config.url === '/api/fileApi'){
return config;
}
config.data = qs.stringify(config.data);
}
return config;
})
/**
* 数据返回响应 拦截器
*/
axios.interceptors.response.use((res) => {
//console.log(res);
return res.data;
})
/**
* 接口抽离
*/
function fetch(url,types,params ={}){
// console.log(params);
return new Promise( (resolve, reject) => {
//console.log(types);
//params.type = params.type ? params.type : "get";
types = types ? types : "get";
if(types=="get"){
axios[types](url,{params: params})
.then( res => {
//console.log(res);
resolve(res)
},err => {
reject (err);
})
.catch((error)=> {
console.log(error);
})
return;
}
axios[types](url, params)
.then( res => {
//console.log(res);
resolve(res)
},err => {
reject (err);
})
.catch((error)=> {
console.log(error);
})
})
}
expport default {
axios,
selectCity (types, datas) {
/**
*
* 切换城市
*/
return fetch(`/api`, types, datas)
},
}
main.js
import apis from './assets/js/apis'
Vue.prototype._domain = apis;
html 调用
this._domain.selectCity("post", params)