Access-Control-Allow-Origin是否响应头区分大小写?

时间:2016-10-31 03:30:39

标签: javascript html5 http-headers httprequest httpresponse

我想从站点B访问站点A的内容。因此,我将站点B的Access-Control-Allow-Origin配置为通配符(*)。但是,在配置之后我将得到跨源异常。然后,我尝试卷曲网站A网址,并获得此结果:

@Html.TextBoxFor(x => x.UserName, new { autocomplete = "off" })

所以,我不确定是不是因为关键字Access-Control-Allow-Origin区分大小写?

我试图四处搜索,找不到任何doc指定它必须是驼峰的情况。

更新

让我解释一下我的确发生了什么:

  1. 我的网站B(https://siteB.com)有一个iframe,其中src =" https://siteA.com "。

    < / LI>
  2. 在网站B上,我有一个脚本来获取该iframe的动态高度:

    access-control-allow-headers: * access-control-allow-origin: *

  3. 当访问 $(iframe).contents()时,此函数出现异常,异常详情如下:

    function showPageDialog(url, id, title, onCloseDialog) {
        var iframe = $('<iframe/>', {'class': 'frame', 'src': url}).load(function(){
            setTimeout(function() {
                $(iframe).height($(iframe).contents().height());
            }, 100);
        });
        showDialog(iframe, id, title, onCloseDialog);
    }

    以下是卷曲结果:

    Uncaught DOMException: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "https://siteB.com" from accessing a cross-origin frame.
    

    正如在@ duskwuff的回答中所提到的,我在siteA的响应头中有HTTP/1.1 200 OK Server: Apache ETag: "f8daec99fedb6b0cd0d205598167cf11:1477550373" Last-Modified: Thu, 27 Oct 2016 06:39:33 GMT Accept-Ranges: bytes Content-Length: 44152 Content-Type: text/html Date: Mon, 31 Oct 2016 09:14:19 GMT Connection: keep-alive access-control-allow-headers: * access-control-allow-origin: * 。但仍然有例外。

1 个答案:

答案 0 :(得分:5)

不,标题不区分大小写。

您的问题更简单:Access-Control-Allow-*标头仅影响标题显示在的网站。站点B发送的标头只能通过脚本授予站点B的访问权限;它无法授予对单独站点A的访问权。

如果要从站点B上运行的脚本访问站点A,则需要在站点A添加Access-Control-Allow-*标头,或者找到另一个不涉及从脚本访问它的解决方案。