Heim > Artikel > Web-Frontend > Wie behebe ich den Fehler „Unerwarteter Token-Doppelpunkt JSON nach jQuery.ajax#get“?
'Unerwarteter Token-Doppelpunkt JSON nach jQuery.ajax#get': Ein umfassender Leitfaden
Einführung
Dieses Problem tritt auf, wenn versucht wird, eine AJAX-Anfrage mit jQuery zu stellen und Daten von einem Server empfängt, der JSON in einem Format zurückgibt, das mit der Konfiguration der Anfrage nicht kompatibel ist. Das kann frustrierend sein, aber das Verständnis der Grundursache und die Anwendung der entsprechenden Lösung können das Problem beheben.
Die Grundursache
Der Fehler „Unerwarteter Token-Doppelpunkt JSON nach jQuery. ajax#get“ tritt auf, wenn der Server JSON-Daten ohne ordnungsgemäße Auffüllung oder einen Rückruf-Abfragezeichenfolgenparameter zurückgibt. JSONP (JSON with Padding) ist eine Technik, die bei Cross-Origin-Anfragen verwendet wird, bei der der Server die JSON-Daten in einen Funktionsaufruf einschließt, um Browser-Sicherheitseinschränkungen zu vermeiden. Wenn der Server jedoch den Padding- oder Callback-Parameter nicht berücksichtigt, interpretiert der Browser die Antwort als ungültiges JSON.
Die Lösung
Um dieses Problem zu beheben, müssen Sie Sie müssen sicherstellen, dass der Server JSONP-Antworten korrekt generiert. Dies bedeutet, dass die JSON-Daten in einen Funktionsaufruf eingeschlossen werden und die Einbeziehung des Callback-Parameters in die Abfragezeichenfolge sichergestellt wird.
In Node.js Express
In Node.js Express, Sie können die Methode res.jsonp() verwenden, um JSONP-Antworten zu generieren:
app.get('/', (req, res) => { res.jsonp({ Name: 'Tom', Description: 'Hello it's me!' }); });
Alternativ können Sie die Auffüll- und Rückrufparameter manuell hinzufügen:
const callback = req.query.callback; const 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); }
In jQuery
Auf der Clientseite können Sie Ihre AJAX-Anfrage für die Verwendung von JSONP konfigurieren, indem Sie die Option dataType: 'jsonp' angeben:
$.ajax({ url: findUrl, type: 'get', dataType: 'jsonp', success: (data) => { // ... }, error: (jqXHR, textStatus, errorThrown) => { // ... } });
Fazit
Indem Sie sicherstellen, dass der Server JSONP-Antworten korrekt generiert und der Client seine AJAX-Anfrage entsprechend konfiguriert, können Sie den Fehler „Unerwarteter Token-Doppelpunkt JSON nach jQuery.ajax#get“ vermeiden und JSON-Daten erfolgreich von Ihrem Server abrufen .
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Unerwarteter Token-Doppelpunkt JSON nach jQuery.ajax#get“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!