我正在尝试使用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请求网址)
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
这里出了什么问题?怎么解决?
编辑:嗯,第一个控制台消息是否有可能产生误导 - 这与安全性无关,但错误是解析我的'whateverData'var中的文本时遇到问题?
答案 0 :(得分:0)
这是两个分开的问题。
您在https页面内显示http内容。
对于post / receiveMessage,根据协议(file://
,https://
,http://
),它们在不同浏览器中的限制略有不同,所以请注意这一点。