首頁 > web前端 > js教程 > 為什麼我的來自 `file://` URL 的 AJAX 請求會導致「不允許為空源」錯誤?

為什麼我的來自 `file://` URL 的 AJAX 請求會導致「不允許為空源」錯誤?

Barbara Streisand
發布: 2025-01-06 02:35:41
原創
570 人瀏覽過

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

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。

故障排除提示

  • 透過將 dataType 設定為 " 來確保您正確使用 JSONP jsonp」或包含「callback=?」在 URL 中。
  • 驗證您是否正在從 HTTP URL 進行測試,因為 file:// 請求的 CORS 支援有限。
  • 如果需要,請啟用實驗性功能來檢查您的瀏覽器是否支援 CORS .

以上是為什麼我的來自 `file://` URL 的 AJAX 請求會導致「不允許為空源」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板