Heim  >  Artikel  >  Web-Frontend  >  Warum erhalte ich einen CORS-Fehler, wenn meine Serverseite den Ursprung mit einem abschließenden Schrägstrich zulässt?

Warum erhalte ich einen CORS-Fehler, wenn meine Serverseite den Ursprung mit einem abschließenden Schrägstrich zulässt?

Barbara Streisand
Barbara StreisandOriginal
2024-11-01 21:10:29691Durchsuche

Why am I getting a CORS error when my server-side allows the origin with a trailing slash?

Warum erhalte ich einen CORS-Fehler, obwohl ich den Ursprung https://example.com/? zugelassen habe?

Cors-Ursprünge verstehen

Cross-Origin Resource Sharing (CORS) ist ein Mechanismus, der Cross-Origin-Anfragen von Websites Dritter einschränkt, um sensible Daten zu schützen. Ein Ursprung wird durch eine Kombination aus Protokoll, Domäne und Port dargestellt.

Das Problem mit dem abschließenden Schrägstrich

Das Hauptproblem hierbei ist das Vorhandensein eines abschließenden Schrägstrichs im zulässigen Ursprung .

Webursprünge enthalten keine abschließenden Schrägstriche. Daher ist der folgende Ursprung ungültig:

<code class="text">https://googledocs-clone-sbayrak.netlify.app/</code>

Der korrekte Ursprung, ohne den abschließenden Schrägstrich, ist:

<code class="text">https://googledocs-clone-sbayrak.netlify.app</code>

Socket.IO CORS-Konfiguration

In Socket .IO, Sie verwenden das Node.js-Cors-Paket für die CORS-Verarbeitung. Dieses Paket erfordert eine genaue Übereinstimmung zwischen dem Ursprung der Anfrage und dem in den CORS-Einstellungen konfigurierten Ursprungswert. Bei einem abschließenden Schrägstrich im Ursprung schlägt der Vergleich fehl und in der Antwort wird kein Access-Control-Allow-Origin-Header festgelegt.

Ihr serverseitiger Code

Ihre server.js-Datei hat CORS-Middleware ist wie folgt konfiguriert:

<code class="javascript">const io = socketio(server, {
  cors: {
    origin: 'https://googledocs-clone-sbayrak.netlify.app/',
    methods: ['GET', 'POST'],
  },
});</code>

Entfernen Sie den abschließenden Schrägstrich aus dem Ursprungswert.

Frontend-Anfrage

In Ihrem Frontend-Code wird die Die Socket-Verbindung wird an die folgende Adresse hergestellt:

<code class="javascript">const s = io('https://googledocs-clone-sbayrak.herokuapp.com/');</code>

Bei Verwendung des korrekten Ursprungswerts ohne den abschließenden Schrägstrich sollte der CORS-Fehler nicht mehr auftreten.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich einen CORS-Fehler, wenn meine Serverseite den Ursprung mit einem abschließenden Schrägstrich zulässt?. 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