1

それについて多くのトピックがあることは知っていますが、どれもうまくいきませんでした。iframe コンテンツ (ソース コードではない) を取得するだけで済みます。

いくつかのパラメーターを別のサーバーに投稿するフォームがあり、それを iframe (同じページにあります) にターゲット設定します。したがって、ページを更新せずにiframeに保存されたサーバー応答コードを受け取ります。

<form name='vin_form' id='file_upload_form' action='*****' method='post'>
    <input name='name1' value='value1'>
    <input name='name2' value='value2' type='hidden'>
    <input name='name3' value='value3' type='hidden'>
    <div onclick=\"document.getElementById('file_upload_form').target = 'upload_target'; document.vin_form.submit();\">Send form</div>
</form>";

<iframe id='upload_target' name='upload_target'></iframe>

iframe コンテンツを取得するために、すべてを使用しましたが、何も機能しませんでした:

jQuery('#upload_target').load(function()
    {
            alert(jQuery('#upload_target').contents().find('body').html());

            var myIFrame = document.getElementById('upload_target');
            var content = myIFrame.contentWindow.document.body.innerHTML;
            alert(content);

            alert(window.frames.upload_target.document.body);
    }
);

「same origin policy」について読みましたが、私の場合は禁止すべきではないと思います。なぜなら、そのページに URL でアクセスしてすべてのコードを読み取ることができるのに、なぜプログラムで実行できないのでしょうか?

PS: 別のサーバーからフォーム応答コードを取得する他の方法はありますか? (一部のサイト フレームワークの防御のため、php curl は機能しません)

4

1 に答える 1

1

*更新 - これを試してください:

 var t = document.getElementById("upload_target");
 var y =( t.contentWindow || t.contentDocument);
 alert(y.document.body.innerHTML)
于 2012-07-04T00:39:01.063 に答える