axios 创建实例后 put 请求时无法携带设置的请求头
在创建axios实例代码之后,分别设置了post,put,同时设置了共通请求头application/x-www-form-urlencoded;charset=UTF-8.使用post请求携带了自定义设置的请求头,但是使用put后,请求就不会携带设置的请求头。并且出现了跨域的问题.
代码如下:
const instance = axios.create({
baseURL: process.env.BASE_API,
timeout: 5000,
withCredentials: true,
headers: {
'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
}
})
function put (url, putData) {
return instance.put(url, qs.stringify(putData))
}
function post (url, postData) {
return instance.post(url, qs.stringify(postData))
}
export default {
get: get,
post: post,
put: put
}
post的请求
put请求
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我估计是axios封装的post,put方法里面也设置请求头,你试一下不用封装的方法,直接用axios()试试
这个不是
put
的请求头 是options
的请求头当请求是
put
所以已经不是非简单请求了 要先发送一个预检的options
请求看见有个字段
Access-Control-Request-Method: PUT
这句话就是问服务器是否支持PUT
的跨域请求PUT方法不属于简单请求, 浏览器会先发一次options, 询问服务器