Heim  >  Artikel  >  Web-Frontend  >  ## Warum erhalte ich einen SyntaxError, wenn ich die Fetch-API im Modus „no-cors“ verwende, obwohl ich eine undurchsichtige Antwort erwarte?

## Warum erhalte ich einen SyntaxError, wenn ich die Fetch-API im Modus „no-cors“ verwende, obwohl ich eine undurchsichtige Antwort erwarte?

Linda Hamilton
Linda HamiltonOriginal
2024-10-25 22:44:29454Durchsuche

## Why am I getting a SyntaxError when using fetch API with 'no-cors' mode despite expecting an opaque response?

API-Abruffehler im „No-Cors“-Modus trotz undurchsichtiger Antworterwartung

Problem: Ein Versuch, eine API mit eingestelltem Modus abzurufen zu „no-cors“ führt zu einem SyntaxError als Antwort auf Response.json().

Erklärung:

Bei Verwendung der Abruf-API mit „no-cors“ Modus schlägt der Browser stillschweigend alle Anfragen fehl, die eine CORS-Berechtigung erfordern. Die Fehlermeldung „Unerwartetes Ende der Eingabe“ wird ausgegeben, weil der Abrufvorgang eine undurchsichtige Antwort zurückgibt (was bedeutet, dass auf den Inhalt nicht zugegriffen werden kann).

Lösung:

Das „ Wenn eine undurchsichtige Antwort Ihren Anforderungen entspricht“ zeigt an, dass der Server der Anfrage keine CORS-Berechtigung erteilt. Um das Problem zu beheben, sollten Sie:

  • den „No-Cors“-Modus entfernen:den Modus auf „Cors“ setzen oder ihn ganz weglassen.
  • Konfigurieren Sie den Server so, dass er CORS-Berechtigungen erteilt: Fügen Sie der Antwort des Servers die entsprechenden CORS-Header hinzu, z. B. „Access-Control-Allow-Origin: *“ für alle Ursprünge oder „Access-Control-Allow-Origin: https“. ://mysite.com‘ für bestimmte Ursprünge.

Zusätzlicher Hinweis:

CORS (Cross-Origin Resource Sharing) schützt vor Cross-Site-Scripting ( XSS-Angriffe, indem sie den unbefugten Zugriff auf Ressourcen unterschiedlicher Herkunft verhindern. Die Erteilung der CORS-Berechtigung sollte sorgfältig erfolgen, um die Sicherheit zu gewährleisten.

Referenz:

  • [CORS im Allgemeinen](https://stackoverflow.com/questions/ 6359744/what-is-cross-origin-resource-sharing-cors)

Das obige ist der detaillierte Inhalt von## Warum erhalte ich einen SyntaxError, wenn ich die Fetch-API im Modus „no-cors“ verwende, obwohl ich eine undurchsichtige Antwort erwarte?. 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