Isu Pengepala CORS Localhost
Walaupun mengkonfigurasi pelayan dengan pengepala CORS yang sesuai, pengguna menghadapi kesukaran menggunakan localhost sebagai asal dalam skrip klien mereka .
Pelayan Konfigurasi
Pelayan disediakan dengan pengepala berikut:
Access-Control-Allow-Origin:http://localhost
Skrip Pelanggan
Skrip klien menggunakan objek XMLHttpRequest untuk membuat permintaan kepada 'http://stackoverflow.com/'.
var xhr = new XMLHttpRequest(); xhr.onload = function() { console.log('xhr loaded'); }; xhr.open('GET', 'http://stackoverflow.com/'); xhr.send();
Ralat
Walau bagaimanapun, permintaan itu gagal dengan ralat berikut:
XMLHttpRequest cannot load http://stackoverflow.com/. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
Penyelesaian
Walaupun konfigurasi pelayan kelihatan betul, isunya terletak dalam penggunaan 'localhost' sebagai asal dalam skrip klien.
Chrome tidak menyokong localhost untuk permintaan CORS disebabkan oleh pepijat yang ditandakan sebagai "WontFix" pada tahun 2014.
Penyelesaian
Untuk mengelakkan isu ini, gunakan domain yang memutuskan untuk 127.0.0.1, seperti 'localho.st' atau lancarkan Chrome dengan bendera '--disable-web-security' untuk tujuan ujian.
Atas ialah kandungan terperinci Mengapa Permintaan CORS Localhost Saya Gagal ke stackoverflow.com Walaupun Pengepala Pelayan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!