Frage

Ich versuche, die geschätzten Weltbevölkerung von http zu laden: // www .census.gov / IPC / www / popclockworld.html AJAX verwenden, und so weit, kläglich scheitert.

Es gibt einen DIV mit der ID „worldnumber“ auf dieser Seite, die die geschätzte Bevölkerung enthält, so dass der einzige Text, das ich von der Seite zu greifen will.

Hier ist, was ich versucht habe:

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

Lösung

Was Sie versuchen, als Cross-Domain-Anfrage bekannt zu machen. Dies ist kein Merkmal, dass Browser normalerweise (Sicherheitsfunktion) ermöglichen. Einige Möglichkeiten, um diese Einschränkung zu umgehen, werden hier beschrieben: Das jQuery-Kreuz -Domäne Ajax-Führer .

Andere Tipps

Sie können so etwas wie dies versuchen:

$.get('http://www.census.gov/ipc/www/popclockworld.html', function(content) {
    $("#population").html($('#worldnumber',$(content)));
});

Ja, es ist die Sicherheit. Sie können nicht Ajax in auf Seiten, die nicht aus der gleichen Domäne ist.

@ R0MANARMY:

Ich konnte nicht den Anweisungen auf dieser Website erklären Sie sich verbunden zu befolgen scheinen, aber ich habe Figur aus einer Lösung ... Ich habe eine PHP-Datei mit dem folgenden Code:

//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);

Dann rief ich es mit jQuery wie folgt:

<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>

Ich dachte, ich es hier im Falle von jemand würde sonst schaut etwas Ähnliches zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top