Richiesta JSONP utilizzando jQuery $ GetJSON non lavorare su ben formato JSON
-
19-09-2019 - |
Domanda
Non sono sicuro che è possibile ora da l'url che sto cercando. Si prega di consultare questo URL: http://www.heiaheia.com/voimakaksikko/stats.json
Serve sempre gli stessi imbottitura funzione "voimakaksikkoStats". E 'ben formato JSON, ma non sono stato in grado di caricare da un server remoto. Ha bisogno di un certo lavoro dal lato server o può essere caricato con javascript? Credo che i problemi devo avere qualcosa da con quella funzione di callback ...
JQuery non è requisito, ma sarebbe bello.
Questa (callback = voimakaksikkoStats) restituisce nulla (Firebug -> rete -> risposta), e vigile del fuoco non lo fa:
$.getJSON("http://www.heiaheia.com/voimakaksikko/stats.json?callback=voimakaksikkoStats", function(data){
alert(data);
})
ma questo (callback =?):
$.getJSON("http://www.heiaheia.com/voimakaksikko/stats.json?callback=?", function(data){
alert(data);
})
restituisce:
voimakaksikkoStats({"Top5Sports":[],"Top5Tests":{"8":"No-exercise ennuste","1":"Painoindeksi","2":"Vy\u00f6t\u00e4r\u00f6n ymp\u00e4rys","10":"Cooperin testi","4":"Etunojapunnerrus"},"Top5CitiesByTests":[],"Top5CitiesByExercises":[],"ExercisesLogged":0,"Top5CitiesByUsers":[""],"TestsTaken":22,"RegisteredUsers":1});
Ma non posso accedervi ... In entrambi gli esempi l'allarme non si attiva mai. Può aiutare qualcuno?
Soluzione 5
<script type="text/javascript">
function voimakaksikkoStats(obj) {
alert(obj.TestsTaken);
}
</script>
<script type="text/javascript" src="http://www.heiaheia.com/voimakaksikko/stats.json"></script>
Non ho mai ottenuto che funziona con jQuery, ma il semplice codice sopra risolto i miei problemi. Ho trovato l'aiuto di Yahoo: http://developer.yahoo.com/common/json.html
Altri suggerimenti
<script type="text/javascript">
function voimakaksikkoStats(stats) {
var ul = new Element('ul');
ul.insert(new Element('li').update('Registered users: '+ stats['RegisteredUsers']));
ul.insert(new Element('li').update('Tests taken: '+ stats['TestsTaken']));
ul.insert(new Element('li').update('Top5 sports: '+ stats['Top5Sports'].join(', ')));
$(document.body).insert({'bottom': ul});
}
</script>
<script type="text/javascript" src="http:/www.heiaheia.com/voimakaksikko/stats.json"></script>
Questo esempio utilizza Prototype.js per creare la lista con alcuni dati da dati statistiche, e poi mette questa lista in fondo corpo del documento.
Per ottenere la vostra funzione di test per lavorare, provare a cambiare a callback=?
è lo script cercando di recuperare JSON da http://www.heiaheia.com anche su http://www.heiaheia.com ?
se non è questa la causa, è al momento non autorizzato a fare richiesta (utilizzando JavaScript) a un altro server rispetto a quello che serve lo script
Se la vostra richiesta va a anonther dominio provare a utilizzare JSONP metodo. Cerca docs JSONP