2

1 つの iframe 内で実行される GWT を使用して 1 つのアプリを実行しようとしています。ここまではすべて問題ありません。実際の Web には、リクエストを iframe に送信するフォームが 1 つあります。「フォームを送信」ボタンを押すとJavaスクリプトを使用して、iframeのsrcを変更し、後で更新します。

document.getElementById('iframeSpecialOffers').src = container.url;

document.getElementById('iframeSpecialOffers').contentWindow.location.reload();

ウェブは www.example.com:81 で実行され、iframe の新しい src は www.example.com:8082 で実行され、このエラーが発生します

      Unsafe JavaScript attempt to access frame with URL http://example:8082/Home.html#!TilePage;searchQuery=*;searchMode=1;amount=1;
position='47.3686498,8.539182500000038';leftBottomPosition='47.32023,8.448059899999976';
    rightTopPosition='47.43468,8.625370100000055';availabilityEndDate=datetime'2012-08-012T18:00:00';$culture=en
     from frame with URL http://example:81/. Domains, protocols and ports must match.

どうもありがとう !

4

1 に答える 1

2

XSS 攻撃 (クロス サイト スクリプティング) から人々を保護するために、ブラウザーは、同じドメインからのものではない iFrame またはウィンドウ内にアクセスすることを許可しません。

ただし、クロスドメインが許可されていることをブラウザに伝えるために、設定できるある種のヘッダーがあります。

http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

それがあなたが進むべき道かどうかはわかりませんが、そのようなことは避けたほうがよいでしょう。

あなたの目標が厳密にページを更新することである場合は、src を再度設定するだけで更新できます。次のようなことを行うだけで更新されると思います。

document.getElementById('iframeSpecialOffers').src = document.getElementById('iframeSpecialOffers').src;

しかし、それがうまくいかない場合は、役に立たない queryString パラメータを追加して別のものにすることができます。

于 2012-08-09T07:41:24.143 に答える