Html 加載本地文件出現跨域錯誤的解決方案

如果用原生的AJAX是加載本地文件就不會出現錯誤。當然,這個jquery的load放在服務器上通過http加載還是支持的。也有例外比如在firefox和ie瀏覽器使用$.ajax加載本地html或txt文件時,不會報錯。

當其他瀏覽器控制檯彈出下面報錯,表明這個不支持跨域瀏覽本地文件:

Access to XMLHttpRequest at ‘file:///F:/%E4%BB%A3%E7%A0%81/Jquery/a.txt’ from origin ‘null’ has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

其實 ,禁止跨域是瀏覽器的安全限制機制,在每個瀏覽器下都有,如在chrome、Firefox、opera 、360 都是這樣的,同樣會報告上述錯誤,但是可以通過設置來繞過這個限制(如果經常 完前端代碼 建議在本機裝個web容器。。。),常見的方式是 右擊chrome快捷方式,選擇“屬性”,在“快捷方式”下的“目標”中添加" --allow-file-access-from-files"(最前面有個空格),重啓chrome即可如下:

“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” –allow-file-access-from-files   //注意有空格,關閉瀏覽器然後重啓瀏覽器即可支持

Jquery的load()一般是加載服務器上的文件(非本地文件),這個概念需要弄清楚。要發佈網站後通過http協議進行訪問,本地file協議瀏覽會產生跨域問題。
除非是靜態文件html調用load,但是這個也是有的瀏覽器支持,有的不支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章