Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mendayakan Permintaan Ajax Cross-Domain dan Elakkan Ralat Access-Control-Allow-Origin?

Bagaimana untuk Mendayakan Permintaan Ajax Cross-Domain dan Elakkan Ralat Access-Control-Allow-Origin?

Patricia Arquette
Patricia Arquetteasal
2024-12-19 15:19:10910semak imbas

How to Enable Cross-Domain Ajax Requests and Avoid Access-Control-Allow-Origin Errors?

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: *');
  • menunjukkan bahawa merentas domain Ajax dibenarkan dari mana-mana domain. Untuk meningkatkan keselamatan, anda boleh menentukan hanya domain yang dipercayai dan bukannya menggunakan kad bebas (*).

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn