jQuery, $.ajax, JSONP + callback
00willson
- javascript
Hallo zusammen,
habe ein Problem mit jQuery's JSONP und Callback. Also los: ich möchte $.ajax mit dataType "jsonp" verwenden. Request funktioniert, alles fein. Um auch das Error-Handling abzudecken, würde ich gern success, error und complete von $.ajax verwenden. Allerdings: liefert der Response etwa "customFeed({...})", so benötige ich einen eigenen Callback namens "function customFeed() {}". Andernfalls erhalte ich die verständliche Fehlermeldung, dass customFeed() unbekannt sei. Nun möchte ich aber keinen eigenen Callback, sondern den Standard von $.ajax. Wie muss der JSONP-Resonse aussehen, damit ich den Standard-Callback verwenden kann?
Als Bsp.:
Flickr liefert für $.ajax mit dataType: "jsonp" und jsonp: "jsoncallback" den Response "jsonp1287320248082({...})", der den $.ajax-Standard success triggert (http://api.flickr.com/services/feeds/photos_public.gne?callback=jsonp1287320248082&lang=en-us&format=json&tags=sunset). Liegt dies an der Callback-Funktion, die dem Value des callback-Parameters trägt?
Und:
mein JSONP-Response ist statisch, auf den Value des callback-Parameters kann ich also nicht reagieren...
Für Ideen bin ich dankbar. Gute Nacht.
Hi,
Für Ideen bin ich dankbar. Gute Nacht.
oh, eine Idee habe ich: Benutze JSON anstatt JSONP. Offenbar ist es das was Du willst.
Cheatah
Hi,
bin auf JSONP angewiesen, weil cross domain request.
Tatsächlich geht es nur darum, wie die callback-Funktion heißen muss, damit ich den $.ajax-Standard nutzen kann und keine eigene callback-Funktion benötige.
Weiterhelfen würde mir auch schon die Info, was denn im Fehlerfall passiert. Nix? Gibt es einen timeout für den AJAX-Request?
Danke.
Hi,
Tatsächlich geht es nur darum, wie die callback-Funktion heißen muss, damit ich den $.ajax-Standard nutzen kann und keine eigene callback-Funktion benötige.
JSONP hat den *Zweck*, eine eigene Callback-Funktion zu verwenden. Es *muss* das umgehen, was Du als $.ajax-Standard titulierst.
Weiterhelfen würde mir auch schon die Info, was denn im Fehlerfall passiert. Nix? Gibt es einen timeout für den AJAX-Request?
Es ist kein AJAX-Request. Es ist das Einfügen eines <script src> an geeigneter Stelle des Objektbaumes. Stelle Dir vor, das <script src> stünde bereits im HTML-Code - wie würdest Du den Fehlerfall behandeln? Was _wäre_ überhaupt der Fehlerfall?
Cheatah