首页 > 解决方案 > 即使标题正确,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 错误。

标签: ajaxvuejs2axios

解决方案


您向其发送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


推荐阅读