Rumah > hujung hadapan web > tutorial js > Mengapa Permintaan AJAX Saya daripada URL `file://` Menghasilkan Ralat 'Origin Null is Not Allowed'?

Mengapa Permintaan AJAX Saya daripada URL `file://` Menghasilkan Ralat 'Origin Null is Not Allowed'?

Barbara Streisand
Lepaskan: 2025-01-06 02:35:41
asal
544 orang telah melayarinya

Why Does My AJAX Request from `file://` URLs Result in an

Ralat "Origin Null is Not Allowed by Access-Control-Allow-Origin" dalam File:// Permintaan URL

Apabila melakukan AJAX permintaan daripada fail:// URL ke domain lain, anda mungkin menghadapi ralat "XMLHttpRequest tidak dapat memuatkan". Isu ini disebabkan oleh dasar keselamatan silang asal yang dikuatkuasakan oleh penyemak imbas.

Memahami Permintaan Silang Asal

Pelayar mengehadkan permintaan silang asal untuk melindungi data pengguna dan menghalang skrip berniat jahat daripada mengakses maklumat sensitif daripada tapak web yang berbeza. Untuk mendayakan permintaan silang asal, pelayan mesti mengembalikan pengepala Access-Control-Allow-Origin yang menyatakan asal yang dibenarkan.

Masalah dengan Permintaan URL File://

Apabila mengakses halaman daripada URL fail://, penyemak imbas mewakili asal sebagai "null," yang bukan asal yang dibenarkan. Ini kerana permintaan URL file:// tidak dianggap sebagai sebahagian daripada web dan mempunyai keupayaan rentas asal yang terhad.

Penyelesaian #1: Gunakan JSONP

JSONP (JSON dengan Padding) ialah teknik yang membenarkan permintaan silang asal tanpa melanggar dasar asal yang sama. Ia melibatkan penambahan parameter panggil balik pada URL, yang kemudiannya dipanggil dengan data JSON sebagai argumen.

Dengan jQuery, anda boleh menggunakan $.getJSON() bukannya $.get() dan tambahkan "? panggil balik=?" ke URL untuk mencetuskan mod JSONP.

Penyelesaian #2: Layan melalui HTTP

Untuk sokongan silang asal penuh, hos halaman anda melalui HTTP. Ini akan membolehkan penyemak imbas menetapkan pengepala Asal yang betul dan mendayakan CORS.

Petua Penyelesaian Masalah

  • Pastikan anda menggunakan JSONP dengan betul dengan menetapkan dataType kepada " jsonp" atau termasuk "panggilan balik=?" dalam URL.
  • Sahkan bahawa anda sedang menguji dari URL HTTP, kerana permintaan file:// mempunyai sokongan CORS yang terhad.
  • Semak sama ada penyemak imbas anda menyokong CORS dengan mendayakan ciri percubaan jika perlu .

Atas ialah kandungan terperinci Mengapa Permintaan AJAX Saya daripada URL `file://` Menghasilkan Ralat 'Origin Null is Not Allowed'?. 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