2

私はAJAXを使用してhttp://www.census.gov/ipc/www/popclockworld.htmlから推定世界人口をロードしようとしていますが、これまでのところ、惨めに失敗しています。

そのページには推定人口を含むID「worldnumber」のDIVがあるので、それがページから取得したい唯一のテキストです。

これが私が試したことです:

  $(document).ready(function(){
    $("#population").load('http://www.census.gov/ipc/www/popclockworld.html #worldnumber *');
  });
4

4 に答える 4

4

あなたがやろうとしていることは、クロスドメインリクエストとして知られています。これは、ブラウザーが通常許可する機能 (セキュリティ機能) ではありません。この制限を回避するいくつかの方法については、「jQuery クロスドメイン Ajax ガイド」で説明しています。

于 2010-06-09T00:21:24.077 に答える
0

@R0MANARMY:

リンク先のサイトに記載されている指示に従うことができなかったようですが、解決策を見つけました...次のコードでPHPファイルを作成しました。

//Run cURL call
$ch = curl_init('http://www.census.gov/main/www/rss/popclocks.xml');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);

//Set as new XML object
$doc = new SimpleXmlElement($data, LIBXML_NOCDATA);


function parseRSS($xml) {
  $cnt = count($xml->channel->item);
  for($i=0; $i<$cnt; $i++) {
    $title = $xml->channel->item[$i]->title;
    if ( preg_match("/world population estimate:\s([0-9,]+)\s/i", $title, $match) ) {
      echo $match[1];
    }
  }
}

parseRSS($doc);

次に、次のように jQuery で呼び出しました。

<div id="population"></div>

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
  $(document).ready(function() {
    $('#population').load('getpop.php');
    var refreshId = setInterval(function() {
      $('#population').load('getpop.php');
    }, 120000);
   });
</script>

他の誰かが同様のことをしようとしている場合に備えて、ここに投稿すると思いました。

于 2010-06-09T17:47:31.370 に答える
0

次のようなことを試すことができます:

$.get('http://www.census.gov/ipc/www/popclockworld.html', function(content) {
    $("#population").html($('#worldnumber',$(content)));
});
于 2010-06-09T00:26:11.043 に答える
0

そう、セキュリティです。同じドメイン以外のページに ajax することはできません。

于 2010-06-09T00:27:30.417 に答える