首页 > 解决方案 > 发出 POST 请求时如何防止触发 CORS?

问题描述

我正在发布表单数据。我不想在发送 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 启动?

谢谢。

标签: jqueryajaxhttpcors

解决方案


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


推荐阅读