axios 调用 - qingqinggit/- GitHub Wiki
that.$axios.post(url, data, {
headers: headerData
}).then(function (response) {
console.log(respones)
}).catch(function (error) {
console.error(error);
})
import axios from 'axios'
import { Message, MessageBox } from 'element-ui'
// import { UserModule } from '@/store/modules/user'
// let baseURL = 'http://192.168.40.210:3033/skill-open-platform'
// export const baseURL = 'http://192.168.40.210:3033/skill-open-platform'
// export const baseURL = 'http://ai.haier.net:11000/yanzheng/skill-open-platform'
export const baseURL = process.env.NODE_ENV === 'production' ? 'https://www.haigeek.com/developerskill' : 'http://192.168.40.210:3033/skill-open-platform';
// export const baseURL = process.env.NODE_ENV === 'production' ? 'https://www.haigeek.com/developerskill' : 'http://10.180.97.208:3033/skill-open-platform';
//本地
// export const baseURL = process.env.NODE_ENV === 'production'
// ? 'https://www.haigeek.com/developerskill'
// : 'http://10.180.97.208:3033/skill-open-platform';
axios.defaults.headers.post['Content-Type'] = 'application/json';
axios.defaults.headers.put['Content-Type'] = 'application/json';
axios.defaults.headers.patch['Content-Type'] = 'application/json';
const service = axios.create({
// baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
baseURL:baseURL,
timeout: 10000,
headers: {
put:{'Content-Type': 'application/json'},
post:{'Content-Type': 'application/json'},
patch:{'Content-Type': 'application/json'},
},
// withCredentials: true // send cookies when cross-domain requests
})
// service.defaults.headers.post['Content-Type'] = 'application/json, text/plain, */*';
// service.defaults.headers.put['Content-Type'] = 'application/json, text/plain, */*';
// service.defaults.headers.patch['Content-Type'] = 'application/json, text/plain, */*';
// Request interceptors
service.interceptors.request.use(
(config) => {
// Add X-Access-Token header to every request, you can add other custom headers here
// console.log(config,'***************')
// if (UserModule.token) {
// config.headers['X-Access-Token'] = UserModule.token
// }
return config
},
(error) => {
Promise.reject(error)
}
)
// Response interceptors
service.interceptors.response.use(
(response) => {
// Some example codes here:
// code == 20000: success
// code == 50001: invalid access token
// code == 50002: already login in other place
// code == 50003: access token expired
// code == 50004: invalid user (user not exist)
// code == 50005: username or password is incorrect
// You can change this part for your own usage.
// console.log(response);
const res = response.data
// if (res.code == 400) {
// Message({
// message: res.message || 'Error',
// type: 'error',
// duration: 5 * 1000
// })
// }
if (res.code !== 200) {
Message({
message: res.message ? res.message : '网络错误',
duration: 3 * 1000
});
if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
// MessageBox.confirm(
// '你已被登出,可以取消继续留在该页面,或者重新登录',
// '确定登出',
// {
// confirmButtonText: '重新登录',
// cancelButtonText: '取消',
// type: 'warning'
// }
// ).then(() => {
// // UserModule.ResetToken()
// location.reload() // To prevent bugs from vue-router
// })
}
return Promise.reject(new Error(res.message || 'Error'))
} else {
return response.data
}
},
(error) => {
if(error.code === 'ECONNABORTED' || error.message === 'Network Error' || error.message.includes('timeout')){
Message({
message: '网络超时',
duration: 3 * 1000
});
}else {
Message({
message: error.message ? error.message : '网络错误',
duration: 3 * 1000
});
}
return Promise.reject(error)
}
);
export default service