Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Pilih PHP Daripada .htaccess untuk Konfigurasi CORS?

Mengapa Pilih PHP Daripada .htaccess untuk Konfigurasi CORS?

Patricia Arquette
Patricia Arquetteasal
2024-10-31 19:46:29440semak imbas

Why Choose PHP Over .htaccess for CORS Configuration?

Mengkonfigurasi CORS dalam .htaccess lwn. PHP

Apabila membangunkan aplikasi silang asal menggunakan Angular.js, adalah perlu untuk mendayakan CORS (Perkongsian Sumber Silang Asal) untuk membenarkan permintaan daripada asal yang berbeza. Walaupun .htaccess ialah kaedah biasa untuk mengkonfigurasi CORS, kadangkala ia mungkin tidak berfungsi seperti yang diharapkan.

Menurut konfigurasi .htaccess pengguna, pengepala berikut harus ditambah:

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

Walau bagaimanapun , aplikasi Angular masih menghadapi ralat. Memandangkan konfigurasi .htaccess untuk fail statik sudah disediakan, pengguna memutuskan untuk meneroka pendekatan alternatif menggunakan PHP.

Dalam fail index.php, kod berikut ditambahkan:

<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>

Memandangkan Slim ialah rangka kerja yang digunakan, laluan tambahan ditambahkan untuk mengendalikan permintaan OPTIONS:

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

Dengan melaksanakan konfigurasi CORS dalam PHP dan bukannya .htaccess, pengguna berjaya menyelesaikan isu permintaan silang asal dan aplikasi Angular kini boleh membuat permintaan kepada perkhidmatan RESTful.

Atas ialah kandungan terperinci Mengapa Pilih PHP Daripada .htaccess untuk Konfigurasi CORS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn