【问题标题】:CORS configuration not workingCORS 配置不起作用
【发布时间】: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 的用户数据提供给我们是非常安全的”。

标签: javascript https cors restful-url


【解决方案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 破解请求,但我不推荐它。
猜你喜欢
  • 2020-06-23
  • 2022-01-15
  • 2018-03-05
  • 1970-01-01
  • 2016-10-25
  • 1970-01-01
  • 2020-09-25
  • 2017-07-10
  • 1970-01-01
相关资源
最近更新 更多