定義了一個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:此參數可有可無]
方案三未有測試,本人還是比較支持第一種方式的,放在容器運行