aioxs二次封装使用
import axios from 'axios'
import Qs from 'qs'
axios.defaults.withCredentials = false // false 不跨域 true 跨域
axios.defaults.baseURL = process.env.NODE_ENV === 'development' ? 'api' : 'apis'
// axios.defaults.headers.common['token'] = localStorage.getItem('token'); // 设置请求头,这个不是必须的
export default function (url, params, method = 'get', type = 'json') {
let headers = {}
let path = '/api-a-bkf-/user-mucon' // 后端路由层地址
if (method === 'post') {
if (type === 'json') {
headers = {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencodes;charset=UTF-8'
}
} else {
headers = {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencodes;charset=UTF-8'
}
params = Qs.stringify(params)
}
}
// 当出现某些情况的时候设置请求拦截
axios.interceptors.response.use(response => {
// if (response.data.statusCode === 2009) { // 这里的状态码是根据后台设置的来
// Message.error({ message: '登录过期,请重新登录' })
// }
return response
}, error => {
// if (error.message.indexOf('timeout') >= 0) {
// Message.error({
// message: '请求超时,请稍后再试!'
// }) // 后台响应超时
// } else if (error.response === undefined) {
// Message.error({
// message: '服务中断,请稍后再试!'
// }) // 后台无响应
// }
return Promise.resolve(error.response)
})
// 发送请求
return new Promise((resolve, reject) => {
axios({
url: path + url,
method,
type,
data: params,
timeout: 6000,
headers: headers
}).then(result => {
resolve(result.data)
}).catch(err => {
reject(err)
})
})
}
以上是axios.js里封装代码,在api.js中统一调用:
![](https://img.haomeiwen.com/i15396140/f16c9269131d348f.png)