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!