import axios from 'axios'
// 判断环境
if ( process.env.NODE_ENV === 'production' ) {
axios.defaults.baseURL = ''
} else if (process.env.NODE_ENV === 'development') {
axios.defaults.baseURL = '/api'
}
// 请求超时时间
axios.defaults.timeout = 10000
// 设置post请求头
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';'
// 获取token信息,根据实际情况获取
// const token = sessionStorage.getItem('token')
// if (token) axios.defaults.headers.common['token'] = token
/**
* 请求拦截器
*/
axios.interceptors.request.use(
config => {
//此处可以设置loading,例如
// if (!config.noLoading) {
// store.commit('setLoading', true)
// }
return config
},
error => {
// setTimeout(() => {
// store.commit('setLoading', false)
// }, 3000)
return Promise.reject(error)
})
/**
* 响应拦截器
*/
axios.interceptors.response.use(
res => {
//store.commit('setLoading', false)
return res
},
error => {
//setTimeout(() => {
//store.commit('setLoading', false)
//}, 1000)
return Promise.reject(error)
})
export function request(options) {
return new Promise((resolve, reject) => {
axios(options)
.then(res => {
if (res.data.code == 200 ) {
resolve(res.data)
} else {
console.log(res.data.codemsg)
}
})
.catch(err => {
reject(err)
if (err && err.request && err.request.readyState === 4) {
if (err.request.status === 200) {
console.log('数据请求异常,请联系管理员')
} else {
console.log('无网络,请检查网络')
}
} else {
if (err && err.request && err.request.readyState === 0 && err.status === 0) {
console.log('无网络,请检查网络')
} else {
console.log(err.data.codemsg)
}
}
})
})
}
接口调用
// 在api文件夹下创建course.js文件
import { request } from '@/service/request'
const buyVipconfig = params => {
return request({
url: '', //输入地址
method: 'get', // 方法
params//蚕食
})
}
在页面内调用方法
// 在main.js中设置全局变量
import api from '@/service/api'
Vue.prototype.api = api
// 在页面内调用对应的方法
this.api.course.buyVipconfig({}).then(res => {
})