CORS 配置不起作用

Posted

技术标签:

【中文标题】CORS 配置不起作用【英文标题】:CORS configuration not working 【发布时间】:2015-07-03 12:19:14 【问题描述】:

谁能帮我找到正确的方法来做CORS。我收到错误

XMLHttpRequest 无法加载 https://***********/gateway.com。请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:7089' 因此不允许访问

通过参考之前与 CORS 相关的帖子创建以下代码。 Java脚本代码如下:

function createCORSRequest(method, url)
    var xhr = new XMLHttpRequest();

    if ("withCredentials" in xhr)
        xhr.open(method, url, true);
     else if (typeof XDomainRequest != "undefined")
        xhr = new XDomainRequest();
        xhr.open(method, url);
     else 
        xhr = null;
    

    return xhr;


function CallWS()

    var request = createCORSRequest("POST","https://**************/gateway.com");
    if (request)
        request.onload = function()
            var res = request.responseText;
            alert(res);
        ;
        request.send();
    

【问题讨论】:

那么定义来自https://***********/gateway.com 的响应的代码在哪里?错误消息说它缺少Access-Control-Allow-Origin 标头。你做了什么来添加它? 调试时遇到这个错误。变量 res 将存储响应 没有。我问的是在gateway.com 上运行的服务器端 代码,它会生成响应。不是试图处理它的客户端代码(并且永远不会有机会,因为gateway.com 没有授予它权限) 我正在尝试消费其他服务提供商的休息网络服务.. 没有。这些数据在网站和用户之间被认为是私有的。该网站可以使用 CORS 授予浏览器与其他网站共享的权限。用户可以安装 CORS 插件以授予浏览器与其他站点共享的权限。另一个网站不能。这就像http://hackrs-r-us.com 说“亲爱的浏览器,您将来自http://some-bank.com 的用户数据提供给我们是非常安全的”。 【参考方案1】:

在尝试进行 CORS 调用时,您需要在 HTTP 服务器上启用 CORS。当您请求初始页面时,服务器应响应该页面并使用 Allow access origin header here 您会找到更好的彻底解释

【讨论】:

你的意思是说网络服务提供商需要启用CORS? 我的意思是服务器必须为给定的域和特定的 HTTP 动词启用 CORS,或者您可以直接通过在所有响应中注册来为任何域和任何 HTTP 动词启用 CORS标头“Access-Control-Allow-Origin:*”,但不建议这样做,因为它存在安全问题。检查此链接html5rocks.com/en/tutorials/cors 刚刚我在chrome中安装了CORS插件并尝试得到响应..如果服务器需要配置那么它如何与CORS插件一起工作? 我猜你在谈论这个plugin。它之所以有效,是因为它充当代理,并为每个响应添加“Access-Control-Allow-Origin:*”标头。它在插件描述中进行了解释。 我不这么认为。出于安全原因,CORS 是这样做的。如果它不适合您可以使用 JSONP 破解请求,但我不推荐它。

以上是关于CORS 配置不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Cloud Storage PHP API 设置 CORS 配置不起作用

为啥预构建 cors 策略配置在 Laravel 7 应用程序中不起作用?

barryvdh/laravel-cors 配置在 Laravel 5.6 中不起作用;忽略'allowedMethods'

Sails.js 全局 CORS 配置不起作用,每条路线是

AWS 控制台中的 CORS 配置不起作用

弹簧靴。 CORS。 'allowCredentials = false' 不起作用