一.封装api.js
import axios from 'axios';
import router from '../router';
axios.defaults.timeout = 100000;
/*const apiUrl = 'http://shopping.zhongguotengcha.com';*/
const apiUrl = 'http://vinetea.weibeicc.com';
axios.interceptors.request.use(
(config) => {
let pathUrl = [
'/index/login_with_pwd',
'/index/login_with_msgCode',
'/mobileCode/send_mobile_code',
'/index/register',
'/mobileCode/check_code_no_login',
'/index/reset_loginPwd',
];
const token = JSON.parse(window.localStorage.getItem('token')) || '';
if (!pathUrl.some((it) => config.url.endsWith(it))) {
if (token) {
config.headers['Authorization'] = `${token}`;
}
}
return config;
},
function(error) {
// Do something with request error
return Promise.reject(error);
}
);
axios.interceptors.response.use(
function(response) {
if (!response.config.url.endsWith('/user/get_user_by_token')) {
// Do something with response data
if (response.data.code === 403) {
router.push({ path: '/login' });
}
}
return response;
},
function(error) {
// Do something with response error
return Promise.reject(error);
}
);
const axiosPost = (url, params = {}) => {
return new Promise((resolve, reject) => {
axios
.post(apiUrl + url, params)
.then(
(response) => {
resolve(response.data);
},
(err) => {
reject(err);
}
)
.catch((error) => {
reject(error);
});
});
};
const axiosGet = (url, params = {}) => {
return new Promise((resolve, reject) => {
axios
.get(apiUrl + url, {
params: params,
})
.then(
(response) => {
resolve(response.data);
},
(err) => {
reject(err);
}
)
.catch((error) => {
reject(error);
});
});
};
export default {
get: axiosGet,
post: axiosPost,
};
二.使用
方法1:
1.main.js
import ajax from "./data/api.js"
Vue.prototype.$ajax = ajax;
2.app.vue
let params = {
page:1
}
this.$ajax.get("/top/femaleNameApi",params).then((res)=>{
console.log(res);
})
方法2:加入await和ansyc的使用
created:async function(){
let params = {
page:1
}
await this.femaleNameApi(params);
},
methods:{
async femaleNameApi(params){
let res = await this.$ajax.get("/top/femaleNameApi",params);
console.log(res.data);
}
}