Dalam perkongsian sumber silang asal (CORS), halaman web boleh meminta sumber daripada asal lain, biasanya melibatkan domain, port, atau protokol. Walau bagaimanapun, secara lalai, penyemak imbas mengehadkan permintaan sedemikian kerana kebimbangan keselamatan.
Dalam senario yang diberikan, pengguna sedang mencuba permintaan POST daripada www.siteone.com ke www.sitetwo.com menggunakan CORS. Ralat yang dihadapi menunjukkan bahawa terdapat ketidakpadanan antara pengepala permintaan dan respons.
Untuk mengkonfigurasi CORS dengan betul, adalah penting untuk mengendalikannya dengan berhati-hati. Fungsi PHP berikut menyediakan pendekatan yang lebih komprehensif:
<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>
Dengan menggantikan kod asal dengan fungsi yang dipertingkat ini, pengguna berjaya menyelesaikan isu CORS. Pendekatan ini memastikan semua pengepala yang diperlukan ditetapkan dengan sewajarnya, membolehkan permintaan silang asal berfungsi seperti yang dimaksudkan.
Atas ialah kandungan terperinci Mengapa CORS Tidak Berfungsi dalam Aplikasi PHP Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!