axios跨域请求一个接口数据,返回了axios的config,header等结构,但是jQuery没有,怎么处理?
- axios跨域请求一个接口数据,返回了axios的config,header等结构,但是jQuery没有,怎么处理?
拦截器封装代码如下
import axios from 'axios'
// import qs from 'qs'
// 拦截器封装axios
axios.defaults.baseURL = process.env.NODE_ENV === 'production' ? URL : '/api'
axios.defaults.timeout = 5000
axios.interceptors.request.use(function (config) {
// 请求之前的处理,token,(js-cookie),store处理
config.headers['Content-type'] = 'application/x-www-form-urlencoded;chartset=UTF-8'
return config
}, function (error) {
return Promise.reject(error)
})
axios.interceptors.response.use(function (response) {
// token验证,cookie时效性,store处理
if (response.status === 200) {
return Promise.resolve(response)
} else {
return Promise.reject(response)
}
}, function (error) {
return Promise.reject(error)
})
function encodeSearchParams (obj) {
const params = []
if (!obj) return ''
Object.keys(obj).forEach((key) => {
let value = obj[key]
// 如果值为undefined我们将其置空
if (typeof value === 'undefined') {
value = ''
}
// 对中文进行编码
params.push([key, encodeURIComponent(value)].join('='))
})
return params.join('&')
}
function apiAxios (requestData) {
let httpConfig = {
method: requestData.method || 'GET',
url: `${requestData.url}?${encodeSearchParams(requestData.params)}`,
data: requestData.data || '',
timeout: 5000
}
return new Promise((resolve, reject) => {
axios(httpConfig)
.then((res) => {
if (res.status === 200) {
resolve(res)
} else {
console.log('数据请求失败')
}
})
.catch((error) => {
reject(error)
})
})
}
export default apiAxios
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论