发出 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? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 django 的预检 CORS POST 请求中处理 CSRF?