Konfigurasi CORS untuk .htaccess: Penjelasan dan Pendekatan Alternatif
Untuk mendayakan akses CORS dalam perkhidmatan web RESTful anda, konfigurasikannya melalui .htaccess ialah pendekatan biasa. Walau bagaimanapun, jika anda menghadapi cabaran atau memilih penyelesaian alternatif, artikel ini meneroka kedua-dua pilihan.
1. Konfigurasi .htaccess (dengan Penambahbaikan):
Untuk berjaya mengkonfigurasi CORS dalam .htaccess, pastikan anda memasukkan elemen berikut sebagai tambahan kepada pengepala asas Access-Control-Allow-Origin:
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Baris ini menentukan kaedah HTTP yang dibenarkan untuk permintaan CORS.
2. Konfigurasi Sisi Pelayan dalam PHP:
Jika anda lebih suka menetapkan pengepala CORS dalam PHP (dengan andaian anda menggunakan rangka kerja PHP seperti Slim), berikut ialah cara anda boleh melakukannya dalam skrip index.php anda :
// Allow from any origin if (isset($_SERVER['HTTP_ORIGIN'])) { // Do additional checks to restrict origins as needed header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Max-Age: 86400'); // Cache for 1 day } // Handling 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']}"); }
Untuk pengguna Slim, tambahkan laluan ini untuk mengendalikan permintaan OPTIONS dengan respons HTTP 200:
$app->map('/:x+', function($x) { http_response_code(200); })->via('OPTIONS');
Pendekatan ini harus menyelesaikan isu CORS anda. Ingat untuk melaraskan tetapan agar sesuai dengan keperluan aplikasi khusus anda.
Atas ialah kandungan terperinci Konfigurasi CORS: .htaccess lwn. PHP - Pendekatan Mana Yang Sesuai untuk Anda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!