提问人:jiggy1965 提问时间:3/4/2018 更新时间:3/4/2018 访问量:262
当所有文件都位于本地同一目录中时,为什么会出现同源策略错误?
Why am I getting a Same-origin policy error while all files are locally in the same directory?
问:
我有一个主要的html文件,它通过iframe在同一目录中加载另一个html文件。主页上有一个按钮,用于定位 iframe 中的 html 文件。它使用这个函数:
<script>
function myFunction() {
var x = document.getElementsByTagName("iframe")[0].contentWindow;
x.exportRoot.gotoAndPlay(2);
}
</script>
Live 它按预期工作:当我单击按钮时,它会从 iframe 中启动 Animate CC 动画。但是,当我在本地查看文件时,我在控制台窗口中收到以下错误消息:
SecurityError(DOM 异常 18):阻止源为“null”的帧访问源为“null”的帧。协议、域和端口必须匹配。
我读到这与同源策略有关。如果主页作为 iframe 页面位于另一个域中,这将是有道理的。但是两个 html 文件都在本地同一个目录中。
我的浏览器(尝试了 Safari 和 Chrome)仍然将其视为两个不同的域?我可以更改一些东西以使其在本地也能使用吗?
答:
0赞
gman
3/4/2018
#1
要在本地进行开发,您应该使用一个简单的 Web 服务器。设置时间不到 2 分钟。这里有一堆
Python的http.server(或SimpleHTTPServer)的更快替代方案是什么?
不要在您的浏览器中禁用网络安全。一个忘记的点击,你的机器可能被拥有了。即使您认为风险很低,当使用简单 Web 服务器的正确方法如此简单时,为什么要冒任何风险呢?
评论
file:///
<iframe>