85 lines
2.1 KiB
JavaScript
85 lines
2.1 KiB
JavaScript
|
|
/**
|
|||
|
|
* axios请求封装
|
|||
|
|
* https://rudon.blog.csdn.net/
|
|||
|
|
*/
|
|||
|
|
import axios from 'axios'
|
|||
|
|
import { getToken, setToken, removeToken } from '@/utils/storage'
|
|||
|
|
// 请求地址前缀
|
|||
|
|
let baseURL = ''
|
|||
|
|
if (process.env.NODE_ENV === 'production') {
|
|||
|
|
// 生产环境
|
|||
|
|
baseURL = ""
|
|||
|
|
} else {
|
|||
|
|
// 开发环境
|
|||
|
|
baseURL = ""
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 请求拦截器
|
|||
|
|
axios.interceptors.request.use((config) => {
|
|||
|
|
if (getToken()) {
|
|||
|
|
config.headers['token'] = getToken();
|
|||
|
|
}
|
|||
|
|
// 请求超时时间 - 毫秒
|
|||
|
|
config.timeout = 10000
|
|||
|
|
config.baseURL = baseURL
|
|||
|
|
// 自定义Content-type
|
|||
|
|
// config.headers['Content-type'] = 'application/json'
|
|||
|
|
return config;
|
|||
|
|
}, (error) => {
|
|||
|
|
return Promise.reject(error)
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
// 响应拦截器
|
|||
|
|
axios.interceptors.response.use((response) => {
|
|||
|
|
/**
|
|||
|
|
* 可添加请求响应的处理逻辑, 例如接口自定义的response.data.code不是200代表失败。
|
|||
|
|
* 错误的话 return Promise.reject(response)
|
|||
|
|
* 正确的话 return response
|
|||
|
|
*/
|
|||
|
|
return response
|
|||
|
|
}, (error) => {
|
|||
|
|
// 可添加请求失败后的处理逻辑
|
|||
|
|
return Promise.reject(error)
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
// axios的get请求
|
|||
|
|
// 导出一个函数,用于发送GET请求
|
|||
|
|
// 返回一个Promise对象
|
|||
|
|
export function getAxios({ url, params }) {
|
|||
|
|
// 使用axios发送GET请求
|
|||
|
|
return new Promise((resolve, reject) => {
|
|||
|
|
axios.get(url, {
|
|||
|
|
params
|
|||
|
|
// 请求成功,将返回的数据传递给resolve函数
|
|||
|
|
}).then(res => {
|
|||
|
|
resolve(res.data)
|
|||
|
|
// 请求失败,将错误信息传递给reject函数
|
|||
|
|
}).catch(err => {
|
|||
|
|
console.log(err)
|
|||
|
|
reject(err)
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// axios的post请求
|
|||
|
|
export function postAxios({ url, data }) {
|
|||
|
|
return new Promise((resolve, reject) => {
|
|||
|
|
axios.post(
|
|||
|
|
url,
|
|||
|
|
data,
|
|||
|
|
{
|
|||
|
|
headers: {
|
|||
|
|
'Content-Type': 'application/x-www-form-urlencoded'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
).then(res => {
|
|||
|
|
resolve(res.data)
|
|||
|
|
}).catch(err => {
|
|||
|
|
reject(err)
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
export default axios
|