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.