首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >云彩工作人员忽略

云彩工作人员忽略
EN

Stack Overflow用户
提问于 2021-06-08 09:07:45
回答 1查看 2.1K关注 0票数 1

我使用frontend创建了一个SendGrid表单,并设置(用于测试)访问控制-允许-原产地“,但它在前端被忽略了:

代码语言:javascript
运行
复制
Access to XMLHttpRequest at 'https://<domain>.workers.dev/' from origin 'https://<frontend-domain>.dev' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我还需要将它添加到AXIOS POST请求中吗?

下面是我的员工文件中的代码:

代码语言:javascript
运行
复制
const myHeaders = new Headers();
  myHeaders.set("Access-Control-Allow-Origin", '*');
  myHeaders.set("Access-Control-Allow-Methods", "GET,HEAD,POST,OPTIONS");
  myHeaders.set("Access-Control-Max-Age", "86400",);
  return new Response((emailResponse.ok), {status: 200, headers: myHeaders}) 

下面是AXIOS请求:

代码语言:javascript
运行
复制
this.$axios.$post(
  "https://<domain>.workers.dev/",
  {
    name: this.mailData.name,
    eMail: this.mailData.eMail,
    phone: this.mailData.phone,
    message: this.mailData.message,
  },
  {
    headers: {
      "Content-Type": "application/json",
    },
  }
);

所有这些都能很好地使用失眠,并且头部可以在那里看到:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-08 14:56:39

您已经正确地设置了对POST本身的响应的头。然而,在浏览器发送POST之前,它使用“飞行前请求”来检查是否允许跨源POST。飞行前请求是一个OPTIONS请求,使用相同的URL。您还需要使用相同的访问控制头和状态代码204 (没有内容)响应OPTIONS请求。

关于飞行前请求的MDN文档

或者,如果您的应用程序将使用Content-Type: text/plain而不是Content-Type: application/json接受Content-Type: text/plain请求,那么这将避免对预飞请求的需要,因为Content-Type: text/plain符合“简单请求”的条件,因此不需要预飞。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67884660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档