发出 POST 请求时如何防止触发 CORS? [复制]

Posted

技术标签:

【中文标题】发出 POST 请求时如何防止触发 CORS? [复制]【英文标题】:How do I prevent triggering CORS when making a POST request? [duplicate] 【发布时间】:2020-05-09 04:20:16 【问题描述】:

我正在发布表单数据。 我希望在发送 HTTP 请求时触发 CORS。

我正在使用 jquery 的 $.ajax 调用:

    $.ajax(
                            method: "POST,
                            url: url,
                            data: e.serialize(),
                            cache: !1,
                            dataType: "json",
                            contentType: "application/json; charset=utf-8",
                            error: function(e) 
                                alert("Could not connect to the registration server. Please try again later."), console.log(e)
                            ,
                            success: function(e) 
                               console.log("success")
                           
)

目前,当它被调用时,我的浏览器会返回消息:

"对预检请求的响应未通过访问控制检查:否 'Access-Control-Allow-Origin' 标头出现在请求的 资源”

这似乎不言自明:“Access-Control-Allow-Origin”未配置为该资源的 http 标头。资源没有启用 CORS。

没关系。这意味着我可以发送请求而无需担心 CORS,对吗? 用户浏览器试图保护用户,而实际上不需要保护。

问题是,我一直在尝试在不触发 CORS 的情况下发送请求。 如何配置我的请求以防止 CORS 启动?

谢谢。

【问题讨论】:

您的请求与它无关——而是与服务器无关。如果请求可以在没有适当的服务器配置的情况下绕过它,CORS 将毫无意义。 【参考方案1】:

您完全误解了 CORS。 CORS 不会阻止或阻止您做任何事情;相反,使用它可以让你做一些你不能做的事情(因为同源策略不允许它们)。您的错误消息告诉您,您的请求被阻止是因为您没有使用 CORS,而不是因为您使用了。与其寻求禁用 CORS,不如使用它!修改您的第二台服务器以发送允许第一个服务器的 Access-Control-Allow-Origin 标头。

【讨论】:

以上是关于发出 POST 请求时如何防止触发 CORS? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用授权标头发出 GET CORS 请求

如何在 django 的预检 CORS POST 请求中处理 CSRF?

即使没有发出预检请求,也会在 POST 请求中出现 CORS 错误

CORS,防止带有授权标头的请求预检

发出发布请求时出现NodeJS CORS错误

如何使用 Angular2 向外部 API 发出 POST 请求?