直接將本地的HTML文件拖拽到Chrome瀏覽器中運行時,發送的AJAX請求本地文件,會報跨域錯誤:
報錯的原因是:Chrome默認不支持本地的AJAX請求!
解決問題的辦法是:給Chrome瀏覽器添加啟動參數:--disable-web-security 或者 --allow-file-access-from-files
具體步驟參見:http://jingyan.baidu.com/article/7c6fb4281d685780642c900a.html
下面講講是什么AJAX跨域問題:
Ajax本身是不支持跨域的,跨域問題其實很簡單,通過瀏覽器的相應設置可以完成兩個不同的服務器或兩個不同服務下的項目互相訪問。
那什么是跨域呢?我還說不清楚,我說說比較不規范但是通俗的說說法吧,比如你使用chrome打開一個本地的html頁面,那么我認為現在你的機器就是一個站點,這個html就是運行在這個站點上,如果你要在這個html頁面中通過xmlhttprequest獲取百度的頁面源碼信息,就有點跨域的意思,這和你直接在地址欄上輸入www.baidu.com又不一樣,因為那樣的話,你當前的站點就是百度了,如果百度也在他的主頁上通過xmlhttprequest獲取google的頁面信息,那樣應該也算是跨域了吧,但是這個跨域問題在服務器上是不存在的,你在服務器上使用urlHttpConnection連接其他站點是允許的。
可以想象,你連接到你自己的服務器,打開一個頁面,如果這個頁面要獲取google的數據,那么這個頁面可以向服務器發出請求(這個頁面和這個服務器是同一個域,我通俗的理解,所以這個請求沒問題),服務器根據請求向google獲取數據(這個是允許的),然后服務器再將獲取到的數據反饋回頁面,這樣頁面就獲取到google的數據了。