„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie behebe ich den Fehler „Unerwarteter Token-Doppelpunkt“ in JSONP-Anfragen mit jQuery.ajax#get?

Wie behebe ich den Fehler „Unerwarteter Token-Doppelpunkt“ in JSONP-Anfragen mit jQuery.ajax#get?

Veröffentlicht am 02.11.2024
Durchsuche:335

How to Resolve \

Unerwarteter Token-Doppelpunkt: Beheben von JSONP-Fehlern in jQuery.ajax#get

Beim Auftreten eines „Unerwarteter Token-Doppelpunkt“-Fehlers in jQuery.ajax #get, es ist wichtig, die Natur von JSONP-Anfragen (JSON with Padding) zu verstehen. Bei JSONP werden JSON-Daten an einen globalen JavaScript-Funktionsaufruf auf der Clientseite zurückgesendet.

Um JSONP zu unterstützen, muss der Server das „Padding“ in die Antwort einschließen. Das „Padding“ besteht aus einem Callback-Funktionsnamen, gefolgt von den in Klammern eingeschlossenen JSON-Daten:

jQuery111108398571682628244_1403193212453({"Name":"Tom","Description":"Hello it's me!"})

In diesem Beispiel lautet der Name der Rückruffunktion jQuery111108398571682628244_1403193212453. Der Fehler tritt auf, weil JavaScript JSONP als JavaScript analysiert, wobei {...} auch Blöcke darstellt.

Um diesen Fehler zu beheben, muss der Server das „Padding“ in die Antwort aufnehmen. Darüber hinaus enthält jQuery normalerweise einen Rückruf-Abfragezeichenfolgenparameter mit dem Namen der Funktion. Um dies zu berücksichtigen, kann der Servercode eine bedingte Anweisung verwenden, um den Rückrufparameter zu überprüfen und die Antwort entsprechend zu senden:

var callback = req.query.callback;
var data = JSON.stringify({
    Name : "Tom",
    Description : "Hello it's me!"
});

if (callback) {
    res.setHeader('Content-Type', 'text/javascript');
    res.end(callback   '('   data   ')');
} else {
    res.setHeader('Content-Type', 'application/json');
    res.end(data);
}

Alternativ stellt ExpressJS eine res.jsonp()-Methode bereit, die diese Bedingung bereits verarbeitet, wodurch es einfacher wird, JSONP-Antworten zurückzugeben:

app.get( '/', function( req, res ) {
    console.log( 'req received' );

    res.jsonp({
        Name : "Tom",
        Description : "Hello it's me!"
    });
});
Freigabeerklärung Dieser Artikel wird unter der Adresse 1729349598 reproduziert. Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3