2017-01-16 2 views
-2

Mein JSON-Aufruf verwendet die Flickr-API und gibt ein Bild in Dreamweaver korrekt zurück - funktioniert jedoch nicht in Chrome.JSON funktioniert nicht in Browsern, arbeitet aber in Dreamweaver

Nach Debugging, es springt nur die Funktion (Daten) ist Teil des folgenden Code:

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?", { 
    tags: keyword, 
    tagmode: "any", 
    format: "json" 
}, function(data) { 
    alert("Got JSON"); 
    var rnd = Math.floor(Math.random() * data.items.length); 

    var image_src = data.items[rnd]['media']['m'].replace("_m", "_b"); 

    [...] 
}); 

Gibt es jemand Ideen? Ich habe gehört, es könnte etwas mit der Browsersicherheit zu tun haben, die den Betrieb nicht erlaubt.

+2

Haben Sie öffnen die Entwicklertools ('F12') und überprüft, ob es dort ein Fehler ist? –

+0

@ ssc-hrep3 Ich habe getan, und es gibt keinen dokumentierten Fehler. Ich habe in Zeilenumbrüchen hinzugefügt und es scheint den Funktions- (Daten-) Teil zu überspringen. –

+1

Haben Sie die Registerkarte Netzwerk überprüft? Ist dort ein Fehler? Höchstwahrscheinlich ja, wenn die Funktion nicht ausgeführt wird. –

Antwort

0

Ich habe bereits einen Kommentar dazu hinzugefügt, aber da ich weitere Informationen hinzufügen möchte, erstelle ich eine Antwort.

Ich bin mir ziemlich sicher, dass es ein Problem mit Ihrer "Schlüsselwort" -Variable ist, denn wie "" charlieftl "bereits in den Kommentaren gesagt, funktioniert die Anfrage einwandfrei, wenn Sie das Schlüsselwort fest codieren. Die getJSON-Funktion hat 3 Parameter : Die URL, die Daten, die Sie dieser URL zur Verfügung stellen und Ihre Erfolgsrückruffunktion Wie der Name sagt, wird die Erfolgsrückruffunktion nur ausgeführt, wenn Ihre Anfrage erfolgreich ist, und wenn nicht, wird es nur so aussehen . sprungen wurde

Eine Sache, die Sie tun können, ist explizite Callback-Funktionen verwenden, um einige Verwirrungen zu vermeiden, zum Beispiel:

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?", { 
    tags: keyword, 
    tagmode: "any", 
    format: "json" 
}) 
.done(function(data){ 
    alert("Got JSON"); 
    var rnd = Math.floor(Math.random() * data.items.length); 

    var image_src = data.items[rnd]['media']['m'].replace("_m", "_b"); 

    [...] 
}) 
.fail(function(jqxhr, textStatus, error){ 
    //do something with the error 
}); 

Auf diese Weise werden Sie diese Verwirrungen vermeiden und Sie werden auch in der Lage sein, den genauen Fehler zu sehen (oder Sie können immer auf die Registerkarte Netzwerk gehen, um den Anfrage-Status und eine mögliche Fehlermeldung zu sehen).

Wenn Sie mehr über die getJSON Funktion zu lesen, können Sie die Dokumentation hier lesen: http://api.jquery.com/jquery.getjson/

Verwandte Themen