axiosパッケージについての記録
2012 ワード
余計な話はしないで、直接コードをつけて、本人も鶏肉です.何かあったら教えてください.ps:messageはiviewコンポーネントのプラグインです.必要に応じて導入します.
// axios
import axios from 'axios';
import { Message } from 'iview'
import store from './../store'
import router from './../router'
if (process.env.NODE_ENV == 'development') {
axios.defaults.baseURL = '/api';}
else if (process.env.NODE_ENV == 'debug') {
axios.defaults.baseURL = '';
}
else if (process.env.NODE_ENV == 'production') {
axios.defaults.baseURL = './';
}
axios.defaults.timeout = 60000; //
//
axios.interceptors.response.use(
response => {
// 0000, ( :0000 , )
// {
if(response.data.retCode != '0000'){
store.commit('common/defaultEntity', {
retCode: response.data.retCode,
retMsg: response.data.retMsg
})
router.push({ path: '/error'});
}
return Promise.resolve(response);
},
error => {
store.commit('common/defaultEntity', {
retCode: error.response.status,
retMsg: ' '
})
router.push({ path: '/error'});
return Promise.reject(error.response);
}
);
/**
* get
* @param url
* @param data
* @returns {Promise}
*/
export function fetch(url,params={}){
return new Promise((resolve,reject) => {
axios.get(url,{
params:params
})
.then(response => {
resolve(response.data);
})
.catch(err => {
reject(err)
})
})
}
/**
* post
* @param url
* @param data
* @returns {Promise}
*/
export function post(url,data = {}){
return new Promise((resolve,reject) => {
axios.post(url,data).then(response => {
resolve(response.data);
},err => {
reject(err)
})
})
}