Ich habe ein Problem mit jsonp und jquery.
Das ist mein Code -
%Vor% jQuery fügt etwas wie ?callback=myCallback&_=1340513330866
zu my_url hinzu und die Daten, die von my_url zurückgegeben werden, sind myCallback('abcd')
- obwohl es in Wirklichkeit einen HTML-Code anstelle von abcd
zurückgibt.
Problem: abcd
wird nicht in der Konsole über myCallback
protokolliert. Also, was mache ich falsch? Ich hatte den Eindruck, dass die zurückgegebenen Daten so ausgeführt werden, wie sie in den Skript-Tags enthalten sind.
Wenn Sie eine eigene Funktion verwenden, müssen Sie sie explizit als global deklarieren. Zum Beispiel:
%Vor%Erläuterung
Jede Funktion, die als Antwort auf eine erfolgreiche JSONP-Anforderung aufgerufen werden soll, muss global sein. jQuery macht das auch. Dies liegt daran, dass JSONP nichts anderes ist, als eine (dynamisch generierte (meiste Zeit)) JavaScript-Datei mit einem <script>
-Tag einzufügen, das nur einen Funktionsaufruf enthält. Da jedes Skript global ausgewertet wird, muss die aufgerufene Funktion ebenfalls global sein.
Entfernen Sie ein Anführungszeichen von der aufgerufenen Methode, die funktioniert. Bitte überprüfen Sie den Code hier,
%Vor%Probieren Sie diese Geige
ausTags und Links javascript jquery jsonp