Permintaan Ajax Cross-Domain Disekat oleh Access-Control-Allow-Origin
Isu ini timbul apabila permintaan Ajax cuba mengakses sumber daripada domain lain, mencetuskan ralat Access-Control-Allow-Origin. Dalam contoh khusus ini, permintaan Ajax sedang dibuat ke pelayan PHP jauh daripada aplikasi Sencha Touch 2.
Menangani Isu
Untuk menyelesaikan ralat ini dan membenarkan merentas domain Ajax, pelayan mesti dikonfigurasikan untuk menambah pengepala respons untuk Access-Control-Allow-Origin. Pengepala ini menentukan domain yang dibenarkan yang boleh membuat permintaan Ajax.
Dalam PHP, ini boleh dicapai dengan mengubah suai pengepala respons seperti berikut:
header('Access-Control-Allow-Origin: *');
Pilihan Tambahan
Konfigurasi Apache atau .htaccess :
Jika anda mempunyai akses kepada fail konfigurasi Apache atau fail .htaccess, anda boleh juga tetapkan pengepala di sana:
Header set Access-Control-Allow-Origin *
Awas:
Walaupun mendayakan Ajax merentas domain membolehkan lebih banyak fleksibiliti, ia juga melumpuhkan perlindungan CORS, yang boleh meninggalkan pengguna terdedah kepada serangan. Gunakan kad bebas (*) hanya jika benar-benar perlu. Sebaliknya, anda disyorkan untuk menyenarai putihkan domain tertentu seperti yang ditunjukkan dalam sampel kod PHP yang disediakan.
Atas ialah kandungan terperinci Bagaimana untuk Mendayakan Permintaan Ajax Cross-Domain dan Elakkan Ralat Access-Control-Allow-Origin?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!