Heim > Artikel > Backend-Entwicklung > Warum funktioniert meine CORS-Implementierung in PHP nicht?
CORS funktioniert in PHP nicht: Ein gelöster Fall
Die Implementierung von Cross-Origin Resource Sharing (CORS) zur Erleichterung des Datenaustauschs über verschiedene Ursprünge hinweg ist eine gemeinsame Herausforderung. Es kann jedoch frustrierend sein, auf CORS-bezogene Fehler zu stoßen.
Ein Benutzer berichtete kürzlich, dass er Probleme mit CORS hatte, als er versuchte, Formulardaten von www.siteone.com an www.sitetwo.com zu übermitteln. Trotz Implementierung der erforderlichen Header-Einstellungen in der Datei „cors.php“ auf der Zieldomäne erhielt der Benutzer „Access-control-Allow-Origin“-Fehler.
Analyse und Lösung:
Bei der Untersuchung des Codes und der Header wurde festgestellt, dass die anfängliche Implementierung der CORS-Header unvollständig war. Der folgende Codeausschnitt, der in „cors.php“ verwendet wurde, war nicht ausreichend:
<code class="php">header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: POST, GET, OPTIONS');</code>
Um CORS-Anfragen umfassend zu bearbeiten, ist eine detailliertere Antwort erforderlich. Der folgende aktualisierte Code lieferte eine gültige Lösung:
<code class="php">// Allow from any origin if (isset($_SERVER['HTTP_ORIGIN'])) { header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Max-Age: 86400'); // cache for 1 day } // Access-Control headers are received during OPTIONS requests if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) header("Access-Control-Allow-Methods: GET, POST, OPTIONS"); if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); exit(0); } echo "You have CORS!";</code>
Schlussfolgerung:
Der CORS-Implementierungsfehler wurde durch die Einbindung der zusätzlichen Codezeilen behoben, die Anfragen von jedem Ursprung erlaubten , aktivierte Anmeldeinformationen und legt eine Cache-Dauer fest. Diese verbesserte CORS-Verarbeitung stellte einen erfolgreichen ursprungsübergreifenden Datenaustausch sicher.
Das obige ist der detaillierte Inhalt vonWarum funktioniert meine CORS-Implementierung in PHP nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!