Rumah >hujung hadapan web >tutorial js >Mengapa Permintaan AJAX Saya daripada URL `file://` Gagal dengan 'Origin Null Not Allowed by Access-Control-Allow-Origin'?

Mengapa Permintaan AJAX Saya daripada URL `file://` Gagal dengan 'Origin Null Not Allowed by Access-Control-Allow-Origin'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-19 12:51:10112semak imbas

Why Does My AJAX Request from `file://` URLs Fail with

Isu "Origin Null Not Allowed by Access-Control-Allow-Origin" untuk Permintaan daripada URL File://

Pengenalan:

Apabila melaksanakan permintaan AJAX ke domain yang berbeza daripada file:// URL, pembangun mungkin menghadapi ralat yang berkaitan dengan "Origin null is not allowed by Access-Control-Allow-Origin." Isu ini timbul disebabkan oleh langkah keselamatan yang dikenali sebagai Perkongsian Sumber Silang Asal (CORS) yang mengehadkan permintaan merentas domain.

Masalahnya:

Permintaan AJAX dibuat daripada file:// URL mempunyai asalan batal, yang tidak dibenarkan oleh CORS. Penyemak imbas menyekat permintaan ini untuk menghalang akses tanpa kebenaran kepada sumber merentas domain yang berbeza.

Penyelesaian:

Untuk menyelesaikan isu ini, dua kaedah utama boleh digunakan:

  1. Gunakan JSONP Permintaan:

    JSONP (JSON dengan Padding) ialah teknik yang membenarkan permintaan merentas domain dengan membungkus respons dalam fungsi panggil balik. Dengan menentukan nama fungsi panggil balik dalam URL, penyemak imbas boleh mentafsirkan respons sebagai panggilan fungsi dan bukannya permintaan AJAX. Untuk menggunakan JSONP:

    • Tetapkan dataType kepada "jsonp" dalam permintaan jQuery $.get.
    • Sertakan "callback=?"` dalam URL permintaan, yang menyebabkan jQuery menjadi guna JSONP.

    Contoh:

    $.get(url, { callback: 'myCallback' }, function(data) {
      // Handle the response data
    });
  2. Ujian Menggunakan URL HTTP:

    Sekatan CORS bukan dikuatkuasakan atas permintaan yang dibuat daripada http:// URL. Oleh itu, menguji permintaan daripada URL http:// boleh memintas isu asal nol. Pendekatan ini berguna untuk menyahpepijat dan mengesahkan konfigurasi CORS sebelah pelayan.

Petua Penyelesaian Masalah:

  • Pastikan pelayan- skrip sisi dikonfigurasikan untuk menyokong CORS dengan menghantar pengepala yang sesuai, seperti Access-Control-Allow-Origin.
  • Semak keserasian penyemak imbas dengan CORS. Pada masa ini, Opera dan Internet Explorer mempunyai sokongan terhad untuk CORS.
  • Elakkan membuat permintaan merentas domain daripada URL file:// jika boleh.

Atas ialah kandungan terperinci Mengapa Permintaan AJAX Saya daripada URL `file://` Gagal dengan 'Origin Null Not Allowed by 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