Domanda

Sto cercando di afferrare i dati da un JSON su un sito esterno, ma il sito non supporta l'uscita JSON-P. Questo è un esempio di codice non-lavoro, ma dà una buona idea di quello che sto cercando di realizzare:

$.getJSON("http://www.bom.gov.au/fwo/IDV60901/IDV60901.94868.json", function(data){
    //Process data here
});

Ci sono modi per aggirare questo oltre ad ospitare localmente i dati o il download e l'elaborazione con una chiamata / PHP AJAX? Preferirei non avere il server servire o scaricare i dati e piuttosto avere il browser dell'utente afferrare direttamente.

Grazie in anticipo!

È stato utile?

Soluzione

Il Same Origin Policy della maggior parte dei browser non avrebbe permesso di fare questo senza un esterno disposto server o un proxy server-side. Ci sono alcuni hack si potrebbe provare con flash:

http://flxhr.flensed.com/

Questo presuppone l'utente ha installato il flash, ma in generale, se hanno installato javascript, hanno anche il flash ...

o

Se i dati che si sta cercando è venuto come un feed da qualche parte, si potrebbe passare attraverso Yahoo Pipes e torneranno jsonp per voi.

Buona fortuna!

Altri suggerimenti

opzione più semplice sarebbe quella di eseguire la chiamata JSON tramite uno script PHP proxy, come questo:

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

?>

e utilizzarlo come fonte di voi ajaxCall

$.getJSON("proxy.php?url=http%3A%2F%2Fwww.bom.gov.au%2Ffwo%2FIDV60901%2FIDV60901.94868.json", function(data){
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top