Warum sollten Sie PHP anstelle von .htaccess für die CORS-Konfiguration wählen?

Patricia Arquette
Freigeben: 2024-10-31 19:46:29
Original
438 Leute haben es durchsucht

Why Choose PHP Over .htaccess for CORS Configuration?

CORS in .htaccess vs. PHP konfigurieren

Bei der Entwicklung einer Cross-Origin-Anwendung mit Angular.js ist es notwendig, CORS zu aktivieren (Cross-Origin Resource Sharing), um Anfragen unterschiedlicher Herkunft zu ermöglichen. Obwohl .htaccess eine gängige Methode zum Konfigurieren von CORS ist, funktioniert es manchmal nicht wie erwartet.

Je nach der .htaccess-Konfiguration des Benutzers sollten die folgenden Header hinzugefügt werden:

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Nach dem Login kopieren

Allerdings , tritt in der Angular-Anwendung immer noch ein Fehler auf. Da die .htaccess-Konfiguration für statische Dateien bereits vorhanden ist, entscheidet sich der Benutzer, einen alternativen Ansatz mit PHP zu erkunden.

In der Datei index.php wird der folgende Code hinzugefügt:

<code class="php">// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
    // should do a check here to match $_SERVER['HTTP_ORIGIN'] to a
    // whitelist of safe domains
    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, PUT, DELETE, OPTIONS");         

    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
        header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

}</code>
Nach dem Login kopieren

Da Slim das verwendete Framework ist, wird eine zusätzliche Route hinzugefügt, um OPTIONS-Anfragen zu verarbeiten:

<code class="php">// return HTTP 200 for HTTP OPTIONS requests
$app->map('/:x+', function($x) {
    http_response_code(200);
})->via('OPTIONS');</code>
Nach dem Login kopieren

Durch die Implementierung der CORS-Konfiguration in PHP anstelle von .htaccess löst der Benutzer das Problem der Cross-Origin-Anfrage erfolgreich und die Angular-Anwendung kann jetzt Anfragen an den RESTful-Dienst stellen.

Das obige ist der detaillierte Inhalt vonWarum sollten Sie PHP anstelle von .htaccess für die CORS-Konfiguration wählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!