axios 创建实例后 put 请求时无法携带设置的请求头

发布于 2022-09-07 11:26:50 字数 787 浏览 10 评论 0

在创建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的请求
clipboard.png
put请求
clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

单调的奢华 2022-09-14 11:26:50

我估计是axios封装的post,put方法里面也设置请求头,你试一下不用封装的方法,直接用axios()试试

树深时见影 2022-09-14 11:26:50

这个不是put的请求头 是options的请求头
当请求是put所以已经不是非简单请求了 要先发送一个预检的options请求
看见有个字段 Access-Control-Request-Method: PUT 这句话就是问服务器是否支持PUT的跨域请求

微凉徒眸意 2022-09-14 11:26:50

PUT方法不属于简单请求, 浏览器会先发一次options, 询问服务器

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文