jQuery „getJSON“ von einer externen Domäne, die nicht JSON-P-Ausgang unterstützt
-
12-09-2019 - |
Frage
Ich versuche, Daten aus einer JSON auf einer externen Seite zu greifen, aber die Seite nicht JSON-P-Ausgang unterstützt. Dies ist ein Beispiel für nicht-funktionierenden Code, sondern gibt eine gute Vorstellung davon, was ich versuche zu erreichen:
$.getJSON("http://www.bom.gov.au/fwo/IDV60901/IDV60901.94868.json", function(data){
//Process data here
});
Gibt es Möglichkeiten, um diese andere als lokal die Daten-Hosting oder das Herunterladen und die Verarbeitung mit einem AJAX / PHP Aufruf? Ich würde lieber nicht haben den Server dienen oder die Daten herunterladen und haben eher den Browser des Benutzers direkt greifen.
Vielen Dank im Voraus!
Lösung
Die Same Origin Policy von den meisten Browsern würden Sie dies nicht tun lassen, ohne bereit extern Server oder ein Proxy-Server-Seite. Es gibt ein paar Hacks Sie mit Flash ausprobieren können:
Dies setzt voraus, Ihre Benutzer hat Flash installiert ist, aber in der Regel, wenn sie Javascript installiert haben, sie auch Flash haben ...
oder
Wenn die Daten, die Sie suchen als Futter irgendwo kam, konnte man es durch Yahoo Pipes , und sie werden für Sie zurück JSONP.
Viel Glück!
Andere Tipps
einfachste Möglichkeit wäre, den json Anruf über einen PHP-Proxy-Skript ausgeführt werden soll, wie diese:
<?php
// PHP Proxy
// Loads a file from any location.
// Author:Paulo Fierro
// January 29, 2006
// usage: proxy.php?url=http://mysite.com/myxml.xml
$session = curl_init($_GET['url']);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$xml = curl_exec($session);
echo $xml;
curl_close($session);
?>
und verwenden, die als Quelle für Sie ajaxCall
$.getJSON("proxy.php?url=http%3A%2F%2Fwww.bom.gov.au%2Ffwo%2FIDV60901%2FIDV60901.94868.json", function(data){