Permintaan AJAX Rentas Domain: Meneroka Penyelesaian
AJAX telah merevolusikan pembangunan web, membolehkan aplikasi dinamik dan interaktif. Walau bagaimanapun, halangan biasa timbul apabila cuba membuat permintaan HTTP merentas domain disebabkan oleh langkah keselamatan penyemak imbas. Artikel ini meneroka penyelesaian alternatif untuk mengatasi had ini dan mendapatkan semula data daripada domain luaran.
Pernyataan Masalah
Soalan menyerlahkan ketidakupayaan untuk melakukan panggilan AJAX secara terus ke domain luaran seperti "http://www.google.com" dan dapatkan hasilnya di tapak web sendiri. Semasa menggunakan dataType "jsonp" mungkin kelihatan seperti penyelesaian, kekurangan pemformatan JSON data yang diterima membawa kepada ralat sintaks.
Penyelesaian: Penyepaduan Pelayan Proksi
Yang disyorkan penyelesaian melibatkan penggunaan bahasa sebelah pelayan sebagai proksi. Proksi ini bertindak sebagai perantara, mengambil data dari domain luaran dan menghantarnya kembali ke tapak web klien dalam format yang sesuai. Berikut ialah contoh pelaksanaan menggunakan jQuery:
$.ajax({ url: 'proxy.php', type: 'POST', data: { address: 'http://www.google.com' }, success: function(response) { // response now contains full HTML of google.com } });
PH yang sepadan (proxy.php) untuk mendapatkan dan mengembalikan data:
echo file_get_contents($_POST['address']);
Pertimbangan iFrame
iFrames juga mematuhi dasar permintaan merentas domain yang sama. Oleh itu, membenamkan iFrame daripada domain berbeza tidak akan membenarkan pengambilan atau manipulasi data terus.
Kesimpulan
Dengan memanfaatkan pelayan proksi, adalah mungkin untuk memintas silang -sekatan domain dan mendapatkan semula data dari destinasi luaran menggunakan AJAX. Kaedah ini menawarkan penyelesaian yang mudah dan berkesan, membolehkan pembangun membina aplikasi yang berinteraksi dengan lancar dengan kandungan daripada berbilang domain.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan AJAX untuk Mendapatkan Data daripada Domain Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!