用fetch封装Axios请求,具体如下:
import qs from “qs”
import axios from “axios”
…
**//封装Axios get/post请求**
export function fetch(url, options) {
let opt = options || {}
let baseParam = { UserName: store.getters.userInfo.UserName, token: store.getters.token }
let data = Object.assign({ t: new Date().getTime() }, opt.data, baseParam )
return new Promise((resolve, reject) => {
Axios({
method: opt.type || 'post',
url: url,
param: opt.type === 'get' ? Object.assign({ t: new Date().getTime() }, opt.data, baseParam ) : {},
//判断是否有自定义头部,以对参数进行序列号.不定义头部,默认对参数序列号为查询字符串
data: (opt.header ? data : qs.stringify(data)) || {},
responseType: opt.dataType || 'json',
//设置默认请求头
header: opt.header || {'Content-Type': 'application/x-www-form-urlencoded;charset-UTF-8'}, //application/json
//是否隐藏loading
hideLoading: options.hideLoading ? true : false
})
.then(response => {
resolve(response)
})
.catch(error => {
reject(error)
})
})
}