【问题标题】:Why is this postMessage/receiveMessage not working?为什么这个 postMessage/receiveMessage 不起作用?
【发布时间】:2013-10-03 02:11:23
【问题描述】:

我正在尝试使用 postMessage/receiveMessage 通过 iframe 访问跨域请求的响应。

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

这在开发环境中工作,但在生产中失败,我猜它与 HTTPS 有关,但不知道如何解决它。

响应代码如下所示:

<script>
$.postMessage(whateverData, 'https://abc.def.com', parent );
</script>

客户端的接收消息如下所示:

$.receiveMessage(function(e){       
            alert(e.data);
        }, 'http://blah123');

我在控制台(Chrome 浏览器)中看到的错误如下所示:(显示 HTTP 请求 URL)

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”变量中的文本时遇到问题?

【问题讨论】:

    标签: javascript iframe cross-domain


    【解决方案1】:

    这是两个独立的问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 2013-03-10
      • 1970-01-01
      • 2014-01-01
      • 2013-11-14
      相关资源
      最近更新 更多