ajax - 即使标题正确,POST 调用也会返回 CORS 错误
问题描述
我正在尝试进行第一次 POST 调用,但收到一条错误消息
“CORS 策略已阻止从源 'http://localhost:8080' 访问 'url' 处的 XMLHttpRequest:在预检响应中 Access-Control-Allow-Headers 不允许请求标头字段内容类型。”
以下是我的代码
methods: {
uploadData(){
axios
.post(
"url",
this.data,
{
headers: {'X-Requested-With': 'XMLHttpRequest'},
}
)
.then((data) => {
console.log(data);
})
.catch((err) => {
console.log("Error", err);
});
}
}
如果发送的标头错误,我会在此处阅读,但我删除了标头。在网络选项卡中,它显示 CORS 错误。
解决方案
您向其发送POST
请求的服务器需要在其响应中包含Access-Control-Allow-Headers。这是您在对您的情况下运行的服务器的请求中指定的标头。http://localhost:8080
headers: {'X-Requested-With': 'XMLHttpRequest'}
这是因为由服务器决定是否允许跨域请求,并且它允许您发送给它的 Content-Type 请求标头(X-Requested-With: XMLHttpRequest)。客户端永远无法自行决定给定服务器应该允许CORS。
了解更多关于 CORS 的链接:
要阅读有关如何找出CORS错误的更多信息:CORS 错误文档
如果您是CORS的新手,您可以在此处阅读有关它的更多信息:CORS doc
解释CORS的视频:REST - API CORS
如何在 spring 中启用CORS例如:Java Spring Enable CORS