在我的本地,我使用下面的JavaScript来创建一个iframe
与src
,并将其添加到文档:
$('#preview').html('<iframe src="http://google.com/"></iframe>');
iframe的表演而不是内容。 在萤火虫,它只是:
<iframe src="http://google.com/">
<html>
<head></head>
<body></body>
</html>
</iframe>
当我执行$('iframe').attr('src','http://google.com/');
在控制台上,浏览器加载(称“等待google.com ...”),然后似乎刷新iframe的内容。 但同样,它是空的。
如果我将其设置为本地页面,不过,在加载内容。
这是因为同样的原产地政策的? 我没有那么了解它。 我做了一些google搜索,我很困惑,因为一些网站说,这没关系包括与不属于自己的域名SRC的iframe,有的说这是不可能的。
顺便说一句,因为我仍然在本地主机上测试,将这项工作,如果我上传这地方的服务器? (但iframe的SRC仍然会在不同的域中)
救命?
如果您想检查浏览器的错误控制台,你会看到这样一条消息:
拒绝了,因为显示的X型框架,选项禁止显示文件。
那么,这是不是对您的部分错误,但在谷歌的部分故意的行为。
对于这两个选项X-Frame-Options
是:
-
deny
-框架内没有呈现,并且 -
sameorigin
-没有渲染,如果不匹配的起源
参考文献:
-
X-Frame-Options
响应头,在MDN 。 -
X-Frame-Options
在维基百科 。 - 克服“显示的X框选项禁止” (这里对堆栈溢出)。
是的代码,因为相同的起源政策禁止的。 阅读这里
假设你拥有该域http://www.example.com
,那么你大概可以有以下结果,当你调用通过iframe的网页:
Compared URL Outcome Reason
---------------------------------------------------------------------------------------------
http://www.example.com/dir/page.html Success Same protocol and host
http://www.example.com/dir2/other.html Success Same protocol and host
http://www.example.com:81/dir2/other.html Failure Same protocol and host but different port
https://www.example.com/dir2/other.html Failure Different protocol
http://en.example.com/dir2/other.html Failure Different host
http://example.com/dir2/other.html Failure Different host (exact match required)
http://v2.www.example.com/dir2/other.html Failure Different host (exact match required)
现在,你在呼唤google.com,这是一个跨域的问题在你身上。 为了解决这样的问题, JSONP可以帮助你。 它采用开放式脚本策略<script>
从跨域检索JSON。