Javascript 为什么此postMessage/receiveMessage不起作用?
我试图使用postMessage/receiveMessage通过iframe访问跨域请求的响应 iframe调用通常执行特定操作的资源,但当出现错误时,它会使用调用postMessage的脚本片段进行响应 这是在开发环境中工作的,但在生产环境中失败了,我猜这与HTTPS有关,但不确定如何解决它 响应代码如下所示: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>
<script>
$.postMessage(whateverData, 'https://abc.def.com', parent );
</script>
$.receiveMessage(function(e){
alert(e.data);
}, 'http://blah123');
我在控制台(Chrome浏览器)中看到的错误如下:(显示HTTP请求URL)
这里出了什么问题?如何修复
编辑:嗯,第一条控制台消息是否可能有误导性?这与安全性无关,但错误在于解析我的“whateverData”变量中的文本时遇到问题?这是两个独立的问题
- 您可以在https页面内显示http内容
- 页面上的无效字符:
文件://
,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