Heim > Web-Frontend > js-Tutorial > Hauptteil

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

Linda Hamilton
Freigeben: 2024-10-19 22:54:02
Original
962 Leute haben es durchsucht

How to Resolve

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

Beim Auftreten eines „Unerwarteten Token-Doppelpunkts“-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!"})
Nach dem Login kopieren

In diesem Beispiel lautet der Callback-Funktionsname 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 einschließen. 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 prü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);
}
Nach dem Login kopieren

Alternativ stellt ExpressJS eine res.jsonp()-Methode bereit, die diese Bedingung bereits verarbeitet. Dies erleichtert die Rückgabe von JSONP-Antworten:

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

    res.jsonp({
        Name : "Tom",
        Description : "Hello it's me!"
    });
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Unerwarteter Token-Doppelpunkt' in JSONP-Anfragen mit jQuery.ajax#get?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!