File:// URL 請求中出現「Access-Control-Allow-Origin 不允許Origin Null」
執行AJAX 時從file :// URL 向不同網域發出請求時,您可能會遇到「XMLHttpRequest 無法載入」錯誤。此問題是由瀏覽器強制執行的跨域安全性策略引起的。
了解跨域請求
瀏覽器限制跨網域請求以保護使用者資料並防止惡意腳本從不同網站存取敏感資訊。若要啟用跨來源請求,伺服器必須傳回指定允許來源的 Access-Control-Allow-Origin 標頭。
File:// URL 要求的問題
當從file:// URL 訪問頁面時,瀏覽器將來源表示為“null”,這不是允許的來源。這是因為 file:// URL 請求不被視為網路的一部分,且跨來源功能有限。
解決方案 #1:使用 JSONP
JSONP(JSON with Padding)是一種允許跨域請求而不違反同源策略的技術。它涉及向 URL 添加回調參數,然後使用 JSON 資料作為參數來呼叫該回調參數。
使用 jQuery,您可以使用 $.getJSON() 代替 $.get() 並附加「?回呼=?」到 URL 以觸發 JSONP 模式。
解決方案 #2:透過 HTTP 提供服務
要獲得完整的跨域支持,請透過 HTTP 託管您的頁面。這將允許瀏覽器設定正確的 Origin 標頭並啟用 CORS。
故障排除提示
以上是為什麼我的來自 `file://` URL 的 AJAX 請求會導致「不允許為空源」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!