【问题标题】:adding access-control-origin header using axios [duplicate]使用 axios 添加 access-control-origin 标头 [重复]
【发布时间】:2021-07-07 00:32:14
【问题描述】:

我正在尝试使用此代码发送帖子数据

  axios
.post(
  data.submissionUrl,
  { data: sendData },
  { headers: { "Access-Control-Allow-Origin": "*" } }
)
.then((response) => {
  console.log(response);
})
.catch((err) => {
  console.log(err, err.response);
});

我收到了这个错误

Access to XMLHttpRequest at 'https://website' from origin 'vscode live server' has been blocked by CORS policy: Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.

但是我不知道如果我交换数据和标题的原因是什么原因使标题与数据连接并且帖子通过但数据不正确。 data: "{"headers":{"Access-Control-Allow-Origin"

【问题讨论】:

    标签: javascript post axios cors liveserver


    【解决方案1】:

    你不能那样做。您需要在服务器响应中添加该标头。

    【讨论】:

    • 所以我必须在服务器中添加该标头(我要在哪里发布数据?)
    • 是的,大多数服务器框架都有一些中间件来做到这一点。比如快递:expressjs.com/en/resources/middleware/cors.html
    • 您也可以使用代理。这是摆脱cors的常用方法。如果您使用 nginx 为您的前端应用程序提供服务,您可以设置一个反向代理来将“/api”重定向到网站。您的应用和 /api 将位于同一主机上,因此浏览器不会关心 cors。
    【解决方案2】:
    • 我认为你在浏览器上使用了 axios,因为如果你将它与 nodejs 一起使用,你不会遇到 cors 的任何问题我建议你通过 nodejs 从你的服务器上执行它,你可以通过 http 请求为你的服务器获取数据我的意思是
    1. 创建一个脚本,通过 nodejs 从您的服务器发送数据
    2. 创建您的浏览器脚本,向您的服务器发送请求以获取此数据,如果您在网站中使用它会更好

    【讨论】:

      猜你喜欢
      • 2017-02-21
      • 2011-06-27
      • 2016-07-03
      • 1970-01-01
      • 2021-09-25
      • 2016-08-12
      • 1970-01-01
      • 2016-01-11
      相关资源
      最近更新 更多