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 が表示されます)
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 内のテキストの解析に問題があるということですか?