0

次のような外部サイトコンテンツをJqueryPostメソッドを介してPHPファイルにロードしているページがあります(クロスサイトの問題のため)。(back.php)

$url = $_POST['url'];
echo file_get_contents($url);

そして私のHTMLコードはこのようになります

    $.post ("back.php",
    {
        url : "http://www.ralphlauren.com/product/index.jsp?productId=2130294&cp=1760781.1760809&ab=ln_men_cs1_polos&parentPage=family"
    }
    ,
    function (data)
    {

        document.getElementById ("output").innerHTML =  data;
    }
);

サイトのコンテンツは正常に読み込まれていますが、スクリプトが読み込まれていません。そのため、スクリプトを実行するオプションを変更しているときにエラーが発生します。

私は別の方法を試しましたが、役に立ちませんでした。

スクリプトをロードする方法も教えてください。

編集 私の質問は明確ではなかったようです。

問題は、指定されたURLのスクリプトとともにコンテンツが私のページに読み込まれていることです。外部URLには、実行されていない埋め込みスクリプトが含まれています。

これが外部サイトの例です

<html>
<body>
Hello
<script>
alert("This is some message"); 
</script>
</body>
</html>

このページをブラウザで直接実行すると、「Hello」というテキストとアラートメッセージが表示されますが、上記の方法(POST / Jquery)でこのファイルをロードすると、「Hello」が表示されますが、アラートは表示されません。メッセージ(javascriptを実行しないことを意味します)。

そのスクリプトを実行するのを手伝ってください。

4

4 に答える 4

1

$(function() { })実行時にjsをロードするために使用する必要があります。

于 2012-05-28T07:32:40.703 に答える
0

なぜ機能しないのかわかりませんが、これを試してみてください。完全に機能しているようです。

<?php 
if($_SERVER['REQUEST_METHOD']=='POST' && $_POST['url']){
    header('Content-Type: text/html');
    echo file_get_contents($_POST['url']);
    die;
}
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" charset="utf-8"></script>

<script charset="utf-8" type="text/javascript">
$(function() {
    $.post ("back.php",{
        url : "http://www.ralphlauren.com/product/index.jsp?productId=2130294&cp=1760781.1760809&ab=ln_men_cs1_polos&parentPage=family"
    },function (data){
        document.getElementById ("output").innerHTML =  data;
    });
});
</script>

</head>
<body>

<div id="output"></div>

</body>
</html>
于 2012-05-28T07:19:08.223 に答える
0

要素を含む HTML をページにロードすることは、あまり安定していません。一部のブラウザーは外部ページ (ajax で取得) でオンロードを実行しないため、これはクロスブラウザーでは機能しません。

したがって、これを行わないでください。コールバック op you で必要な JavaScript を実行してください$.post

編集こちら もご覧ください

于 2012-05-28T07:16:41.103 に答える
0

エラーは、次の理由で発生する可能性があります。

  • jQuery ライブラリの読み込みを忘れている可能性があります。

  • DOM 対応のコード内にラップするのを忘れています。$(function() { })

  • 別のドメインからデータを取得しようとしている場合は、jsonp type request を試してください。

于 2012-05-28T07:23:22.967 に答える