Heim  >  Artikel  >  Backend-Entwicklung  >  Warum funktioniert CORS in meiner PHP-Anwendung nicht?

Warum funktioniert CORS in meiner PHP-Anwendung nicht?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-03 04:54:02192Durchsuche

Why Is CORS Not Working in My PHP Application?

CORS funktioniert nicht in PHP

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!

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