Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Saya Mendapat Ralat \"Tiada \'Access-Control-Allow-Origin\' Header Present\" Apabila Menggunakan jQuery AJAX?

Mengapa Saya Mendapat Ralat \"Tiada \'Access-Control-Allow-Origin\' Header Present\" Apabila Menggunakan jQuery AJAX?

Susan Sarandon
Susan Sarandonasal
2024-11-04 12:24:02276semak imbas

Why Am I Getting a

jQuery XML Ralat: 'Tiada Pengepala 'Access-Control-Allow-Origin'

Pengenalan

Apabila cuba mendapatkan semula fail XML daripada domain lain menggunakan panggilan AJAX jQuery, anda mungkin menghadapi ralat, "XMLHttpRequest tidak boleh memuatkan **. Tiada pengepala 'Access-Control-Allow-Origin' terdapat pada sumber yang diminta." Ralat ini timbul disebabkan oleh Dasar Asal Sama penyemak imbas.

Memahami Dasar Asal Sama

Dasar Asal Sama ialah mekanisme keselamatan yang dikuatkuasakan oleh pelayar web yang mengehadkan panggilan AJAX ke domain yang serupa dengan yang mengehos halaman HTML. Dasar ini melindungi pengguna daripada skrip berniat jahat yang mengakses data sensitif daripada tapak web lain.

CORS (Perkongsian Sumber Silang Asal)

Untuk memintas Dasar Asal Sama dan membenarkan silang -permintaan domain, CORS mesti dilaksanakan. CORS ialah satu set pengepala HTTP yang ditambahkan pada respons pelayan yang memberikan kebenaran untuk mengakses sumber daripada asal yang berbeza.

Pengepala 'Access-Control-Allow-Origin'

Tajuk 'Access-Control-Allow-Origin' adalah penting dalam CORS. Ia menentukan asal (domain) yang dibenarkan untuk membuat permintaan kepada sumber tersebut. Tanpa pengepala ini, penyemak imbas akan menyekat permintaan atas sebab keselamatan.

Membetulkan Ralat

Terdapat beberapa cara untuk menyelesaikan ralat ini:

  • Pembetulan Bahagian Pelayan: Laksanakan CORS pada bahagian pelayan dengan menambahkan pengepala 'Access-Control-Allow-Origin' pada respons.
  • Pembetulan Sebelah Pelanggan : Cerminkan sumber jauh pada pelayan dengan CORS didayakan, kemudian buat permintaan kepada sumber yang dicerminkan.
  • Sambungan Penyemak Imbas: Gunakan sambungan penyemak imbas yang mendayakan permintaan silang asal. Walau bagaimanapun, ini tidak disyorkan atas sebab keselamatan.

Pertimbangan Tambahan

  • CORS menyokong permintaan pra-penerbangan (OPTIONS) yang menyemak sama ada pelayan membenarkan minta sebelum data sebenar dipindahkan.
  • Pengepala CORS lain mungkin diperlukan, seperti 'Kaedah-Kawalan-Akses-Benarkan-Kaedah' dan 'Kaedah-Kawalan-Akses-Benarkan-Pengepala'.
  • Praflight permintaan boleh menambah kependaman pada proses.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \"Tiada \'Access-Control-Allow-Origin\' Header Present\" Apabila Menggunakan jQuery AJAX?. 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