我在不同的服务器上有两个文件,我使用iframe将一个服务器的数据显示到另一个服务器,我使用以下代码
server.php(托管在服务器A上)
<?php
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Methods: GET, POST');
?>
this is itest
<div style="height:1100px; background-color:pink; width:100px" >sdfsd</div>
<a href="javascript:;" onclick="goTop()">Go to Top</a>
<script>
function goTop () {
parent.scrollTo(0,0);
}
</script>
client.php(托管在服务器B上)
<iframe src="http://serverA.com/server.php" height="1200px" >
当我点击"转到顶部"链接时,我会得到"未捕获的安全错误:阻止了具有原点的帧"。。。。"从访问具有原点的帧"。。。.协议、域和端口必须匹配。
解决方案是什么?
- 在父框架中创建一个将滚动到顶部的函数(您已经以
goTop
的形式完成了此操作) - 在
window
对象上的message
事件的事件侦听器中使用该函数 - 使用框架中文档中的
parent.postMessage
向父元素发送消息
有关示例,请参阅MDN postMessage
页面。