Heim  >  Artikel  >  Web-Frontend  >  Wie behebe ich den Fehler „Unerwarteter Token-Doppelpunkt JSON nach jQuery.ajax#get“?

Wie behebe ich den Fehler „Unerwarteter Token-Doppelpunkt JSON nach jQuery.ajax#get“?

Linda Hamilton
Linda HamiltonOriginal
2024-10-19 22:52:02474Durchsuche

How to Resolve the

'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!

Stellungnahme:
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