Heim >Backend-Entwicklung >PHP-Tutorial >Warum funktioniert CORS in meiner PHP-Anwendung nicht?
Beim Cross-Origin Resource Sharing (CORS) kann eine Webseite Ressourcen von einem anderen Ursprung anfordern, typischerweise mit unterschiedlichen Domänen, Ports usw. oder Protokolle. Allerdings schränken Browser solche Anfragen aufgrund von Sicherheitsbedenken standardmäßig ein.
Im gegebenen Szenario versucht der Benutzer mithilfe von CORS eine POST-Anfrage von www.siteone.com an www.sitetwo.com. Der aufgetretene Fehler deutet darauf hin, dass zwischen den Anforderungs- und Antwortheadern eine Diskrepanz besteht.
Um CORS richtig zu konfigurieren, ist es wichtig, sorgfältig damit umzugehen. Die folgende PHP-Funktion bietet einen umfassenderen Ansatz:
<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>
Durch Ersetzen des Originalcodes durch diese erweiterte Funktion konnte der Benutzer das CORS-Problem erfolgreich lösen. Dieser Ansatz stellt sicher, dass alle notwendigen Header richtig gesetzt sind, sodass Cross-Origin-Anfragen wie vorgesehen funktionieren.
Das obige ist der detaillierte Inhalt vonWarum funktioniert CORS in meiner PHP-Anwendung nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!