Warum „Auf der angeforderten Ressource ist kein Access-Control-Allow-Origin-Header vorhanden“
Das Problem tritt auf, wenn ein Browser eine Cross-Origin-Anfrage stellt (CORS ) sendet der Browser zunächst eine Preflight-Anfrage an den Server, um zu prüfen, ob der Server CORS unterstützt und wenn ja, welche Methoden, Header und Ursprünge zulässig sind.
Der Server sollte auf die Preflight-Anfrage mit antworten entsprechende CORS-Header. Wenn der Server nicht mit den erforderlichen Headern antwortet, blockiert der Browser die eigentliche Anfrage.
In diesem Fall antwortet der Server nicht mit dem Access-Control-Allow-Origin-Header, der dem Browser dies mitteilt Der Ursprung darf auf die Ressource zugreifen.
So beheben Sie das Problem
Es gibt mehrere Möglichkeiten, dieses Problem zu beheben:
- Fügen Sie die Zugriffskontrolle hinzu. Allow-Origin-Header für die Antwort der Preflight-Anfrage. Dies kann mithilfe der Middleware im Code erfolgen.
- Setzen Sie den Access-Control-Allow-Origin-Header auf „*“, um alle Ursprünge zuzulassen. Dies wird jedoch aus Sicherheitsgründen nicht empfohlen.
- Verwenden Sie einen Reverse-Proxy, der den Access-Control-Allow-Origin-Header zur Antwort hinzufügen kann.
Zusätzliche Hinweise
- Der Access-Control-Allow-Origin-Header kann auch für bestimmte Ursprünge festgelegt werden. Um beispielsweise Anfragen von https://example.com zuzulassen, können Sie den Header auf Access-Control-Allow-Origin setzen: https://example.com.
- Der Access-Control-Allow- Der Origin-Header ist nur für Cross-Origin-Anfragen erforderlich. Wenn die Anfrage vom selben Ursprung stammt, sendet der Browser keine Preflight-Anfrage und der Server muss nicht mit dem Access-Control-Allow-Origin-Header antworten.
Das obige ist der detaillierte Inhalt vonWarum wird mir der Fehler „Kein Access-Control-Allow-Origin-Header' angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!