jsonp mit jquery [geschlossen]


89

Können Sie ein sehr einfaches Beispiel für das Lesen einer jsonp-Anfrage mit jquery geben? Ich kann es einfach nicht zum Laufen bringen.

Antworten:


144

Hier ist ein Arbeitsbeispiel:

<html><head><title>Twitter 2.0</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head><body>
<div id='tweet-list'></div>
<script type="text/javascript">
$(document).ready(function() {
    var url =  "http://api.twitter.com/1/statuses/user_timeline/codinghorror.json";
    $.getJSON(url + "?callback=?", null, function(tweets) {
        for(i in tweets) {
            tweet = tweets[i];
            $("#tweet-list").append(tweet.text + "<hr />");
        }
    });
});
</script>
</body></html>

Beachten Sie die ?callback=?am Ende der angeforderten URL. Dies zeigt der getJSONFunktion an, dass wir JSONP verwenden möchten. Entfernen Sie es und eine Vanilla JSON-Anfrage wird verwendet. Was aufgrund der gleichen Ursprungsrichtlinie fehlschlagen wird .

Weitere Informationen und Beispiele finden Sie auf der JQuery-Website: http://api.jquery.com/jQuery.getJSON/


2
Ich habe $ .ajax mit diesen jsonp-Parametern ausprobiert und konnte das nicht zum Laufen bringen. Wie auch immer, das funktioniert gut, danke.
akula1001

2
Wird das ?callback=?tatsächlich als Teil der URL gesendet oder ist es nur eine Art Flag, das jQuery sieht und das entfernt wird, bevor die URL abgerufen wird?
Hippietrail

1
Was ist erforderlich, wenn Ihre URL Parameter erfordert? (zB: ?p=1&s=50)
ONDEV

2
Ich fand dies eine gute Referenz als Ausgangspunkt. Antwort oben: Ja, der Rückruf wird als Parameter gesendet und sollte als Funktion um die JSON-Antwort zurückgesendet werden. Siehe stackoverflow.com/questions/7936610/… . Um zusätzliche Parameter zu senden, werden sie im zweiten Parameter von getJSON () im obigen Beispiel gesendet. Ersetzen Sie null durch {p: 1, s: 50}
Ecropolis

Ich bekomme den Fehlercode 410 - weg. Gibt es einen "ewig" vorhandenen Dienst, der JSON irgendwo zurückgibt? Nur damit man testen kann, ob die eigene Methode funktioniert?
Konrad Viltersten
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.