我想从站点B访问站点A的内容。因此,我将站点B的Access-Control-Allow-Origin配置为通配符(*)。但是,在配置之后我将得到跨源异常。然后,我尝试卷曲网站A网址,并获得此结果:
@Html.TextBoxFor(x => x.UserName, new { autocomplete = "off" })
所以,我不确定是不是因为关键字Access-Control-Allow-Origin区分大小写?
我试图四处搜索,找不到任何doc指定它必须是驼峰的情况。
更新
让我解释一下我的确发生了什么:
我的网站B(https://siteB.com)有一个iframe,其中src =" https://siteA.com "。
< / LI>在网站B上,我有一个脚本来获取该iframe的动态高度:
access-control-allow-headers: *
access-control-allow-origin: *
当访问 $(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: *
。但仍然有例外。
答案 0 :(得分:5)
不,标题不区分大小写。
您的问题更简单:Access-Control-Allow-*
标头仅影响标题显示在的网站。站点B发送的标头只能通过脚本授予站点B的访问权限;它无法授予对单独站点A的访问权。
如果要从站点B上运行的脚本访问站点A,则需要在站点A添加Access-Control-Allow-*
标头,或者找到另一个不涉及从脚本访问它的解决方案。