Rumah > hujung hadapan web > tutorial js > Mengapa Saya Mendapat Ralat \'Tiada \'Access-Control-Allow-Origin\' Header\' Apabila Mengakses Fail XML daripada Domain Berbeza?

Mengapa Saya Mendapat Ralat \'Tiada \'Access-Control-Allow-Origin\' Header\' Apabila Mengakses Fail XML daripada Domain Berbeza?

Mary-Kate Olsen
Lepaskan: 2024-11-03 18:21:03
asal
872 orang telah melayarinya

Why Do I Get

Ralat XML jQuery: "Tiada pengepala 'Access-Control-Allow-Origin' hadir pada sumber yang diminta"

Apabila cuba untuk akses fail XML yang terletak pada domain lain menggunakan jQuery, anda mungkin menghadapi mesej ralat: "Tiada pengepala 'Access-Control-Allow-Origin' hadir pada sumber yang diminta." Ralat ini berlaku disebabkan oleh Dasar Asal Sama, yang mengehadkan panggilan AJAX silang asal.

Memahami Dasar Asal Sama

Dasar Asal Sama menguatkuasakan itu pelayar web hanya membenarkan panggilan AJAX ke perkhidmatan yang dihoskan pada domain yang sama dengan halaman HTML yang membuat permintaan. Dalam contoh yang diberikan, halaman HTML dihoskan pada http://run.jsbin.com/, manakala fail XML terletak di http://www.ecb.europa.eu/, menghasilkan permintaan silang asal yang disekat oleh penyemak imbas.

Mendayakan Permintaan Silang Asal (CORS)

Untuk membenarkan permintaan silang asal, pelayan mesti memasukkan pengepala yang sesuai dalam responsnya. Salah satu pengepala ini ialah pengepala Access-Control-Allow-Origin, yang menentukan asal-usul yang dibenarkan untuk mengakses sumber.

Dalam kes fail XML, pelayan ECB tidak menyediakan CORS yang diperlukan pengepala, oleh itu mesej ralat. Untuk menyelesaikan masalah ini, pelayan perlu dikonfigurasikan untuk memasukkan pengepala berikut:

Access-Control-Allow-Origin: http://run.jsbin.com
Access-Control-Allow-Methods: GET
Access-Control-Allow-Headers: Content-Type
Salin selepas log masuk

Nota tentang Permintaan Prapenerbangan

Dalam kes tertentu, seperti semasa membuat POST permintaan dengan pengepala bukan ringkas, penyemak imbas boleh melakukan permintaan pra-penerbangan OPTIONS untuk menentukan sama ada pelayan menyokong CORS untuk permintaan khusus. Jika respons pelayan kepada permintaan prapenerbangan ini tidak mengandungi pengepala CORS yang sesuai, permintaan utama akan gagal dengan mesej ralat yang sama. Oleh itu, adalah penting untuk menyertakan pengepala yang diperlukan sebagai respons kepada kedua-dua permintaan prapenerbangan dan utama.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Tiada 'Access-Control-Allow-Origin' Header' Apabila Mengakses Fail XML daripada Domain Berbeza?. 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