lg_frontend/plugins/axios.js

77 lines
1.7 KiB
JavaScript

import axios from 'axios' //引用axios
import { message } from 'ant-design-vue';
import Vue from 'vue'
import checkTypes from "../utils/checkTypes";
axios.defaults.withcredentials =true
// create an axios instance
const service = axios.create({
// baseURL: process.env.NODE_ENV === 'development' ? '' : 'http://101.43.201.20:5000', // 所有异步请求都加上/api,nginx转发到后端Springboot
baseURL: '', // 所有异步请求都加上/api,nginx转发到后端Springboot
timeout: 5000 // request timeout
})
// request interceptor
service.interceptors.request.use(
config => {
config.headers['Access-Control-Allow-Origin'] = '*'
return config
},
error => {
return Promise.reject(error)
}
)
// response interceptor
service.interceptors.response.use(
response => {
const res = response.data //res is my own data
if (!checkTypes.isObject(res)) {
return { data: res }
}
if (`${res.code}` === '0') {
return res
} else {
message.error(res.msg || 'Error')
return Promise.reject(new Error(res.msg || 'Error'))
}
},
error => {
message.error(error.message)
return Promise.reject(error)
}
)
Vue.prototype.$http = service
Vue.prototype.$post = (url, data, props = {}) => {
return service({
url,
method: "post",
data,
...props
})
}
Vue.prototype.$put = (url, data, props = {}) => {
return service({
url,
method: "put",
data,
...props
})
}
Vue.prototype.$delete = (url, data, props = {}) => {
return service({
url,
method: "delete",
data,
...props
})
}
Vue.prototype.$get = (url, data, props = {}) => {
return service({
url,
method: "get",
params: data,
...props
})
}