Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mendapatkan Data daripada Domain Berbeza Menggunakan AJAX, Memandangkan Dasar Asal Yang Sama?

Bagaimanakah Saya Boleh Mendapatkan Data daripada Domain Berbeza Menggunakan AJAX, Memandangkan Dasar Asal Yang Sama?

Linda Hamilton
Lepaskan: 2024-11-25 16:53:12
asal
394 orang telah melayarinya

How Can I Retrieve Data from Different Domains Using AJAX, Considering the Same-Origin Policy?

Meminta Data daripada Domain Berbeza menggunakan AJAX

Walaupun kebimbangan keselamatan yang dikaitkan dengan panggilan Ajax merentas domain, terdapat situasi apabila mendapatkan data daripada laman web luaran adalah perlu. Soalan ini menyiasat kemungkinan untuk mencapai pertukaran data sedemikian, dengan mengambil kira sekatan yang wujud.

Halangan utama untuk panggilan Ajax merentas domain ialah Dasar Asal Sama (SOP) penyemak imbas. Dasar ini melarang permintaan Ajax terus ke URL pada domain yang berbeza. Seperti yang dicadangkan oleh soalan, percubaan untuk membuat panggilan Ajax ke "http://www.google.com" akan disekat oleh penyemak imbas.

Semasa menetapkan dataType kepada "jsonp" membenarkan panggilan merentas domain , ia memperkenalkan cabaran baharu. Respons daripada tapak web luaran tidak akan berada dalam format JSON, yang membawa kepada ralat sintaks apabila cuba menghuraikannya.

Penyelesaian: Menggunakan Bahasa Bahagian Pelayan sebagai Proksi
Sejak panggilan Ajax langsung tidak dibenarkan kerana SOP, penyelesaiannya terletak pada menggunakan bahasa sebelah pelayan untuk bertindak sebagai proksi. Bahasa ini boleh mengambil data daripada tapak web luaran yang diingini dan kemudian mengembalikannya ke penyemak imbas pelanggan.

Satu pendekatan untuk melaksanakan perkara ini digambarkan dalam coretan kod yang disediakan. Bahagian jQuery kod membuat permintaan Ajax kepada skrip PHP bernama "proxy.php", menghantar alamat tapak web luaran sebagai parameter. Setelah menerima respons daripada tapak web luaran, skrip PHP (proxy.php) hanya menggemakan kandungannya. Dengan cara ini, penyemak imbas menerima data daripada tapak web luaran tanpa melanggar SOP.

Adalah penting untuk ambil perhatian bahawa kaedah ini melibatkan penghantaran data (dalam kes ini, alamat tapak web luaran) ke pelayan- skrip sampingan, menjadikannya penting untuk mempertimbangkan implikasi dari segi keselamatan dan privasi data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Data daripada Domain Berbeza Menggunakan AJAX, Memandangkan Dasar Asal Yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan