chrome異步加載本地json文件報錯:cross origin request are only supported for HTTP

定義了一個data.json文件存儲學生相關信息,在index.html中想通過$.getJSON("data.json" , function(data){...})方法獲取並顯示json文件中的內容。

結果運行後chrome報錯如下:Cross origin requests are only supported jquery.min.js:5 for protocol schemes:http,data,chrome,chrome-extension,https.

一看就知道是跨域的報錯,但是加載本地文件,是不存在跨域的啊;網上查了一下,說是chrome在讀取本地相對路徑腳本時,禁止向第三方請求數據。 (只要是通過file://方式訪問,或者直接拖進瀏覽器訪問,都叫本地運行)就不管本地文件、還是服務器url 文件都不行。

解決一: 
放入tomcat,然後啓動server,開啓服務器模式,在瀏覽器中通過http://localhost:8080/index.html訪問,~成功訪問到本地json文件。 親測ok

解決二:

放入火狐瀏覽器或者IE瀏覽器,親測ok。

解決三:

更改chrome的設置就行。
在chrome屬性設置中,添加啓動參數:

window

chrome快捷方式–右鍵“屬性”–快捷方式–目標 
--allow-file-access-from-files : 允許本地Ajax請求,也叫file協議下的Ajax請求
--enable-file-cookies : 允許chrome保存本地設置cookie 

Mac: 
打開終端,輸入下面命令:open -a “Google Chrome” –args –disable-web-security然後就可以屏蔽安全訪問了[ –args:此參數可有可無]

方案三未有測試,本人還是比較支持第一種方式的,放在容器運行

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