使用postMessage的跨域通讯

问题描述 投票:0回答:1

我有我需要打开一个iframe,这反过来,放在另一个HTML页面内内的html页面的要求(URI开头的文件://此页)。需要有iframe和外部HTML页面之间的跨域通讯。当IFRAME里的页面是从本地机器加载(:// URI两个外页和页面中的iframe有文件),它是工作完全正常。

现在,如果我试图创建一个应用程序,它托管在我的本地机器,并打开它的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的通信成为可能?

javascript html http iframe postmessage
1个回答
1
投票

该错误信息是明确的:你没有使用相同的协议。一种是使用HTTP,另一种是使用文件。

作为一个安全的选择Chrome浏览器,你需要同时服务于下HTTP或文件协议。

© www.soinside.com 2019 - 2024. All rights reserved.