76 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.6 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
 | 
						|
  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
 | 
						|
  })
 | 
						|
}
 |