背景:
服务器接受axios请求后,返回成功状态会以html方式,而不是类似ajax的json格式。这是由于axios没有像ajax那样在请求头中默认设置了 {X-Requested-With:'XMLHttpRequest'}
当axios中需要设置请求头时,如果apache服务器端设置了Header set Access-Control-Allow-Headers,需要同时设置允许接收X-Requested-With。
'X-Requested-With': 'XMLHttpRequest'
解决:
1,vue+vant项目中
service.interceptors.request.use(
config => {
config.headers = { 'X-Requested-With': 'XMLHttpRequest' }
if (store.getters.token) {
config.headers['X-Token'] = getToken()
}
return config
},
error => {
return Promise.reject(error)
}
)
在请求中设置请求头:
config.headers = { 'X-Requested-With': 'XMLHttpRequest' }
2.vue+elementui
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'
service.interceptors.request.use(
config => {
// do something before request is sent
return config
},
error => {
return Promise.reject(error)
}
)
在设置拦截器前加入
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'
存疑:
当我在vue+vant项目中使用方法2,设置请求头失败
————————————————
版权声明:本文为CSDN博主「北巷`」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44717486/article/details/124638207
网友评论