0

以下のhtmlコンテンツを持つhtmlページがあります

<div id="divBody">
    <input type="text" id="txtUrl" value="http://www.google.com" />
    <br />
    <input type="button" id="btnShowPopup" value="Show Popup" onclick="Javascript:ShowPopup();" />
</div>
<div id="divPopup">
</div>

以下のような関数 ShowPopup があります。

function ShowPopup() {
    var page = "http://www.google.com";
    $('#divPopup').dialog({
        modal: true,
        open: function() {
            $(this).load(page);
        },
        close: function(e) {
            $(this).empty();
            $(this).dialog('destroy');
        },
        height: 625,
        width: 500,
        title: "Test Page"
    });
}

以下のように、すべての jquery スクリプトを含めました。

<script src="Scripts/JQuery.js" type="text/javascript"></script>
<script src="Scripts/jquery.ui.core.js" type="text/javascript"></script>
<script src="Scripts/jquery.ui.widget.js" type="text/javascript"></script>
<script src="Scripts/jquery.ui.mouse.js" type="text/javascript"></script>
<script src="Scripts/jquery.ui.draggable.js" type="text/javascript"></script>
<script src="Scripts/jquery.ui.position.js" type="text/javascript"></script>
<script src="Scripts/jquery.ui.resizable.js" type="text/javascript"></script>
<script src="Scripts/jquery.ui.button.js" type="text/javascript"></script>
<script src="Scripts/jquery.ui.dialog.js" type="text/javascript"></script>

タイトル「テスト ページ」と閉じるボタンが表示されます。Googleページが読み込まれないのはなぜですか、何かアイデアはありますか?

4

1 に答える 1

1

これは、クロス ドメイン リクエストであるためです。とにかく、Googleのページをダイアログにロードしようとしている理由がわかりません。そのようなページの読み込みは、iFrame を使用して行うことができます (はい、それらが悪いと見なされていることはわかっています)。サーバー上のページを読み込んでみてください。

これはcross-domain-ajax-querying-with-jquery に役立つかもしれません

IE の開発者ツール (F12) を見ると、クロス ドメイン リクエストが原因であることがわかりました。

SEC7118: http://www.google.com/index.htmlの XMLHttpRequest にはCross Origin Resource Sharing (CORS) が必要です。

SEC7127: CORS 要求のリダイレクトがブロックされました。

SCRIPT7002: XMLHttpRequest: ネットワーク エラー 0x2ef1、エラー 00002ef1 のため操作を完了できませんでした。

于 2013-05-16T19:10:24.827 に答える