我有一个要求,我需要在iframe中打开一个html页面,而iframe又放在另一个html页面中(uri以file://开头,用于此页面)。 iframe和外部html页面之间需要有跨域消息传递。 iframe中的页面是从本地计算机加载的(iframe中的外部页面和页面都有file:// uri),它工作得很好。
现在,如果我尝试创建一个应用程序,将其托管在我的本地计算机中并在iframe中打开它,尽管页面成功加载,但外框和iframe中的页面之间的消息传递失败。
我在Chrome中收到以下错误: -
Uncaught SecurityError: Blocked a frame with origin "http://localhost/newapp"
from accessing a frame with origin "null". The frame requesting access has a protocol of
"http", the frame being accessed has a protocol of "file". Protocols must match.
我已经在托管应用程序的服务器上允许跨源请求。我可以采取哪些其他步骤使postMessage通信成为可能?
答案 0 :(得分:1)
错误消息很明确:您没有使用相同的协议。一个是使用HTTP而另一个是使用文件。
作为Chrome的安全选择,您需要在HTTP或文件协议下提供服务。