Javascript 为什么此postMessage/receiveMessage不起作用?

Javascript 为什么此postMessage/receiveMessage不起作用?,javascript,iframe,cross-domain,Javascript,Iframe,Cross Domain,我试图使用postMessage/receiveMessage通过iframe访问跨域请求的响应 iframe调用通常执行特定操作的资源,但当出现错误时,它会使用调用postMessage的脚本片段进行响应 这是在开发环境中工作的,但在生产环境中失败了,我猜这与HTTPS有关,但不确定如何解决它 响应代码如下所示: <script> $.postMessage(whateverData, 'https://abc.def.com', parent ); </script>

我试图使用postMessage/receiveMessage通过iframe访问跨域请求的响应

iframe调用通常执行特定操作的资源,但当出现错误时,它会使用调用postMessage的脚本片段进行响应

这是在开发环境中工作的,但在生产环境中失败了,我猜这与HTTPS有关,但不确定如何解决它

响应代码如下所示:

<script>
$.postMessage(whateverData, 'https://abc.def.com', parent );
</script>
$.receiveMessage(function(e){       
            alert(e.data);
        }, 'http://blah123');
我在控制台(Chrome浏览器)中看到的错误如下:(显示HTTP请求URL)

这里出了什么问题?如何修复


编辑:嗯,第一条控制台消息是否可能有误导性?这与安全性无关,但错误在于解析我的“whateverData”变量中的文本时遇到问题?

这是两个独立的问题

  • 您可以在https页面内显示http内容

  • 页面上的无效字符:

对于post/receiveMessage,根据协议不同,它们在不同浏览器中的限制略有不同(
文件://
https://
http://
),所以也要注意这一点

The page at https://abc.def.com/xyz/something.html#jkl displayed insecure content from http://blah123/sub/qwerty/target.aspx?parmsRemoved
Uncaught SyntaxError: Unexpected token ILLEGAL