Untuk mengkonfigurasi PHPStudy untuk mengendalikan permintaan CORS, anda perlu mengubah suai tetapan pelayan anda, terutamanya yang berkaitan dengan Apache dan PHP. Berikut adalah pendekatan langkah demi langkah untuk menubuhkan CORS:
Tambah Header Cors : Anda perlu menambah baris berikut ke fail konfigurasi Apache untuk menubuhkan tajuk CORS:
<code><ifmodule mod_headers.c> Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE" Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept" </ifmodule></code>
Pastikan anda menambah baris ini pada akhir fail atau dalam bahagian <virtualhost></virtualhost>
yang sesuai jika anda menggunakan tuan rumah maya.
Konfigurasi PHP (Pilihan) : Jika anda menggunakan PHP untuk menyampaikan kandungan, anda juga boleh mengendalikan COR dalam skrip PHP dengan menambahkan tajuk berikut pada permulaan fail PHP anda:
<code class="php"><?php header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE"); header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); ?></code>
Persediaan ini akan membolehkan fungsi CORS asas di seluruh pelayan PHPStudy anda.
Tetapan pelayan khusus dalam PHPStudy yang diperlukan untuk membolehkan CORS terutamanya melibatkan mengubah fail konfigurasi Apache ( httpd.conf
) untuk memasukkan tajuk CORS yang sesuai. Berikut adalah tetapan khusus yang harus anda tambahkan:
Konfigurasi Apache ( httpd.conf
) :
<code><ifmodule mod_headers.c> Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE" Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept" </ifmodule></code>
Tetapan ini membolehkan pelayan bertindak balas kepada permintaan CORS dari mana -mana asal ( *
). Anda boleh menggantikan kad wildcard ( *
) dengan domain tertentu jika anda ingin menyekat CORS ke asal -usul tertentu.
Konfigurasi PHP (Pilihan) :
Jika anda mengendalikan permintaan terus melalui PHP, anda boleh menetapkan tajuk CORS dalam fail PHP anda:
<code class="php"><?php header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE"); header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); ?></code>
Ini adalah tetapan utama yang diperlukan untuk membolehkan CORS dalam PHPStudy.
Ya, konfigurasi PHPStudy boleh diselaraskan untuk membolehkan COR dari pelbagai domain. Daripada menetapkan Access-Control-Allow-Origin
ke *
(yang membolehkan mana-mana asal), anda boleh menyenaraikan domain tertentu. Inilah cara melakukannya:
Konfigurasi Apache ( httpd.conf
) :
Ubah suai tajuk Access-Control-Allow-Origin
untuk menyenaraikan domain tertentu:
<code><ifmodule mod_headers.c> Header set Access-Control-Allow-Origin "https://domain1.com, https://domain2.com" Header set Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE" Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept" </ifmodule></code>
Anda boleh menambah seberapa banyak domain yang diperlukan, dipisahkan oleh koma.
Konfigurasi PHP :
Jika mengendalikan CORS melalui PHP, anda boleh menggunakan tetapan header dinamik berdasarkan asal yang meminta:
<code class="php"><?php $allowed_origins = array("https://domain1.com", "https://domain2.com"); $origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : ""; if (in_array($origin, $allowed_origins)) { header("Access-Control-Allow-Origin: " . $origin); } header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE"); header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); ?></code>
Kod PHP ini memeriksa asal yang meminta dan menetapkan tajuk CORS dengan sewajarnya.
Dengan menggunakan kaedah ini, anda boleh mengkonfigurasi PHPStudy untuk membolehkan COR dari pelbagai domain yang ditentukan.
Penyelesaian masalah CORS dalam PHPStudy melibatkan memeriksa konfigurasi pelayan dan aplikasi anda, serta memeriksa mesej ralat penyemak imbas. Berikut adalah langkah -langkah untuk menyelesaikan masalah CORS:
Semak Konsol Pelayar : Buka alat pemaju dalam penyemak imbas anda dan navigasi ke tab Konsol. Cari mesej ralat yang berkaitan dengan CORS, seperti:
<code>Access to XMLHttpRequest at 'your_url' from origin 'your_origin' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.</code>
Mesej -mesej ini memberikan petunjuk mengenai tajuk CORS yang hilang atau tidak betul.
Sahkan Konfigurasi Pelayan : Pastikan fail httpd.conf
dalam phpstudy mengandungi tajuk CORS:
<code><ifmodule mod_headers.c> Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE" Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept" </ifmodule></code>
Mulakan semula pelayan Apache selepas sebarang perubahan untuk memastikan ia berkuatkuasa.
Semak tajuk PHP : Jika anda menggunakan PHP untuk mengendalikan CORS, sahkan bahawa tajuk ditetapkan dengan betul dalam skrip PHP anda:
<code class="php"><?php header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE"); header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); ?></code>
Permintaan Pilihan Ujian : CORS sering melibatkan permintaan pengendalian pilihan (permintaan preflight). Pastikan pelayan anda bertindak balas dengan betul kepada permintaan ini. Anda boleh menggunakan alat seperti curl
untuk menguji:
<code>curl -X OPTIONS -H "Origin: your_origin" -H "Access-Control-Request-Method: POST" -H "Access-Control-Request-Headers: X-Requested-With" your_url</code>
Semak sama ada respons termasuk tajuk CORS yang diharapkan.
Dengan mengikuti langkah -langkah ini, anda harus dapat mengenal pasti dan menyelesaikan sebarang isu CORS dalam PHPStudy.
Atas ialah kandungan terperinci Bagaimanakah saya mengkonfigurasi phpstudy untuk mengendalikan permintaan CORS (perkongsian sumber silang asal)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!