Unerwarteter Token-Doppelpunkt JSON in jQuery.ajax#get
Problem:
Bei der Verwendung Wenn jQuery.ajax#get JSON-Daten von einer Node.js-API abruft, tritt in Chrome der Fehler „Unerwartetes Token:“ auf.
Kontext:
Untersuchung:
Die Untersuchung des Fehlers in Chrome deutet darauf hin, dass die JSON-Antwort einen unerwarteten Doppelpunkt (:) enthält.
Lösung:
JSONP-Unterstützung aktivieren:
Das Problem entsteht, weil der Client eine JSONP-Antwort erwartet, bei der es sich um JSON-Daten handelt, die in einen JavaScript-Funktionsaufruf eingeschlossen sind. Um die JSONP-Unterstützung zu aktivieren, muss der Server das „Padding“ („P“) in die Antwort einschließen.
<code class="text">jQuery111108398571682628244_1403193212453({"Name":"Tom","Description":"Hello it's me!"})</code>
Serverseitige Codeänderung:
An Unterstützen Sie JSONP in Node.js Express. Ändern Sie den Servercode wie folgt:
const express = require('express'); const app = express(); app.get('/', (req, res) => { const callback = req.query.callback; const data = { Name: "Tom", Description: "Hello it's me!" }; if (callback) { res.setHeader('Content-Type', 'text/javascript'); res.end(callback + '(' + JSON.stringify(data) + ')'); } else { res.json(data); } });
Alternativ:
Verwenden Sie die integrierte res.jsonp()-Methode von ExpressJS:
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.jsonp({ Name: "Tom", Description: "Hello it's me!" }); });
Clientseitige Codeänderung:
Auf der Clientseite sind keine Änderungen erforderlich. Standardmäßig übergibt jQuery den Callback-Query-String-Parameter mit dem Funktionsnamen.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Unerwartetes Token:' bei der Verwendung von jQuery.ajax zum Abrufen von JSON von Node.js?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!