首頁 >web前端 >js教程 >為什麼我的來自 `file://` URL 的 AJAX 請求失敗並顯示「Access-Control-Allow-Origin 不允許 Origin Null」?

為什麼我的來自 `file://` URL 的 AJAX 請求失敗並顯示「Access-Control-Allow-Origin 不允許 Origin Null」?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-19 12:51:10109瀏覽

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

來自 File:// URL 的請求出現「Access-Control-Allow-Origin 不允許 Origin Null」問題

簡介:

從文件://向不同域執行AJAX請求時URL,開發人員可能會遇到與「Access- Control-Allow-Origin 不允許Origin null」相關的錯誤。出現此問題的原因是一種稱為跨域資源共享 (CORS) 的安全措施,該措施限制跨域請求。

問題:

來自以下位置的 AJAX 請求file:// URL 的來源為空,這是 CORS 不允許的。瀏覽器會封鎖這些請求,以防止跨網域未經授權的存取資源。

解決方案:

要解決此問題,可以採用兩種主要方法:

  1. 使用JSON請求:

    JSONP(帶填充的JSON)是一種透過將回應包裝在回呼函數中來允許跨域請求的技術。透過在 URL 中指定回呼函數名稱,瀏覽器可以將回應解釋為函數呼叫而不是 AJAX 請求。要使用 JSONP:

    • 在 jQuery $.get 請求中將 dataType 設定為「jsonp」。
    • 在請求URL 中包含「callback=?」`,這會導致jQuery使用JSONP.

    範例:

    $.get(url, { callback: 'myCallback' }, function(data) {
      // Handle the response data
    });
  2. 範例:

    範例:

例如:

例如>
    使用HTTP URL進行測試:
  • CORS 限制不存在對來自 http:// URL 的請求強制執行。因此,測試來自 http:// URL 的請求可以繞過空源問題。此方法對於調試和驗證伺服器端 CORS 配置非常有用。
故障排除提示:確保伺服器-側面腳本配置為透過發送適當的標頭來支援CORS,例如Access -Control-Allow-Origin。 檢查瀏覽器與 CORS 的兼容性。目前,Opera 和 Internet Explorer 對 CORS 的支援有限。 盡可能避免從 file:// URL 發出跨域請求。

以上是為什麼我的來自 `file://` URL 的 AJAX 請求失敗並顯示「Access-Control-Allow-Origin 不允許 Origin Null」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn