2

私のシンプルなコード

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script src="jquery.js"></script>
<script type="text/javascript">
$(function(){
$.get("http://www.facebook.com",function(data){
alert(data);});

});</script></head>

 <body>
</body>
</html>

Facebookのコンテンツに警告する必要がありますが、そうではありません

アップデート

今、PHPを使用しているiam

<?php
 $str=file_get_contents("http://www.facebook.com");
    echo strip_tags(htmlspecialchars($str)); 
?>

なぜタグを削除しないのですか?

4

4 に答える 4

4

同一生成元ポリシーが原因で、ブラウザによってブロックされたばかりだと思います。コンソールを参照してください。これを実行しようとすると、警告が表示されます。

クロスオリジンリソースシェアリングまたはサーバー側プロキシがないと、クロスドメインページを読み取ることができません。

私の知る限り、これを行う唯一の方法は、ドメイン上のサーバースクリプトに外部ページ(wget、curl、fopen、その他にあるもの)を読み取らせ、それをページに戻すことです。サーバーは、リモートページを読み取るための「ブリッジ」のように機能します。

クロスドメイン制限のないJSONPについて聞いたことがあるかもしれませんが、この方法で取得しているのはHTML/ページではなくスクリプトです。

于 2012-05-24T12:23:48.627 に答える
4

サーバーサイドでphpを使用している場合。次を使用して、htmlを返すサービスを作成できます。

$html = file_get_contents('http://www.facebook.com');

ASP.NET:

using(WebClient client = new WebClient()) 
{
    string html = client.DownloadString("http://www.facebook.com'");
}
于 2012-05-24T12:25:35.007 に答える
3

JSONPを使用しない限り、同一生成元ポリシーのために外部Webサイトからコンテンツを要求することはできません。ただし、HTMLをリクエストしているため、これは適用されません。

別の方法は、サーバー側のプロキシを作成してfacebook.comホームページのHTMLを取得し、そのローカルURLを$.get()関数に提供することです。

于 2012-05-24T12:24:01.903 に答える
0

同じドメインでのみajaxリクエストを行うことができます

ただし、JSONPを使用してクロスドメインリクエストを行うことができます
http://en.wikipedia.org/wiki/JSONP

ibmdeveloperworksに関するこの記事を参照してください:
http ://www.ibm.com/developerworks/library/wa-aj-jsonp1/

于 2012-05-24T12:32:11.430 に答える