錯誤:XMLHttpRequest cannot load file


錯誤現象:

      下載了jQuery UI的插件Wijmo,然后在本地運行,但是Chrome瀏覽器無法顯示部分效果,無法加載部分文件(通過審查元素—>控制台查看),Firefox中顯示正常。

錯誤信息:

XMLHttpRequest cannot load file:///home/cf/IdeaProjects/fei/src/Wijmo-Pro.3.20131.7/Samples/WidgetExplorerMobile/samples/bubblechart/overview.html. Origin null is not allowed by Access-Control-Allow-Origin.

原因:

Chrome瀏覽器不支持本地ajax訪問,具體就是ajax不能訪問file這樣的,估計發布就可以了

解決辦法:

有以下3種解決辦法:

一、將整個目錄放到tomcat服務器的webapps目錄下,啟動tomcat服務器,瀏覽器中輸入localhost:8080/A/a.html(這種方法最簡單)

 

二、將html5的程序做成 chrome的擴展程序,該擴展程序的擴展文件名為.crx.

例如我想訪問A目錄下的a.html后發生錯誤,則進行如下操作(這種方法存在一個缺陷:每次更改html頁面內容后需要重新打包擴展程序):

1, 在程序根目錄(/A)下面增加一個manifest.json 文件:

文件格式為:

{

"name": "DemoApp",

 "description": "Demo",

 "version": "0.1",

 "app": {

   "launch": {

     "local_path": "***.html"

   }

 },

 "permissions": [

   "unlimitedStorage"

 ]

}

2,將該程序利用chrome打包。打開chrome,在設置按鈕中選擇工具>擴展程序,或者在地址欄輸入chrome://extensions/. 如圖:

 

 

3,點擊擴展程序,開始打包html程序:

 

4.點擊瀏覽到/A目錄下,私有密鑰文件可忽略,打包擴展程序

 

5.彈出對話框打包成功,顯示A.crx所在位置。成功后,來到/A目錄的上一級目錄,可以看到A.crx文件。

將該文件直接拖拽到chrome瀏覽器中,在瀏覽器下部區域會彈出如下所示對話框,選擇繼續。

 

6.彈出對話框如下所示:點擊添加。

 

7.瀏覽器將自動打開一個新標簽頁,如下圖所示,點擊DemoApp的圖標

 

8.瀏覽器會出現如下圖所示錯誤信息:(此屬於正常)

 

9.這時在瀏覽器中輸入如上圖所示url。此處我輸入chrome-extension://bbbhibcamhjnikmjlibhinpkamoddnlh/a.html

即會顯示/A/a.html的內容信息,成功。

<!--[endif]-->

參考:http://www.iteye.com/topic/825714,里面是讓Chrome支持本地ajax訪問

 

三、修改chrome的屬性值。

       此方法適應於任何系統,只是不同系統的操作方法不同,此處由於本人使用的linux系統,僅提供linux下操作方法。

       首先,關閉chrome瀏覽器。

       其次,打開終端terminal。

       再次,輸入命令google-chrome --disable-web-security或者google-chrome  --allow-file-access-from-files,將觸發系統重新啟動chrome瀏覽器,此時直接輸入file:///home/cf/A/a.html就可以看到正常顯示效果。

 

參考網址:

http://stackoverflow.com/questions/3595515/xmlhttprequest-error-origin-null-is-not-allowed-by-access-control-allow-origin

http://stackoverflow.com/questions/3102819/chrome-disable-same-origin-policy

希望能給同樣遇到此問題的朋友們起到一點幫助~^_^

本文出自 “飛翔的天空” 博客,請務必保留此出處http://frabbit2013.blog.51cto.com/1067958/1254285


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM