Ajax請求失敗緣由

今天使用Ajax進行頁面訪問,頁面訪問失敗,但經過瀏覽器地址欄直接訪問又能夠訪問成功。英文比較差,不清楚提示是什麼意思,經多番查找,終於找到一個比較合理的解釋,具體以下: javascript

1. javascript代碼 html

xmlhttp = $.ajax({url:"http://www.baidu.com", async:false});
alert(xmlhttp.responseText);
2. 現象:

(1)alert提示: java

(2)Chrome Network結果: ajax

(3)Chrome控制檯(Console)錯誤提示: chrome

XMLHttpRequest cannot load http://www.baidu.com/. Origin null is not allowed by Access-Control-Allow-Origin. 跨域

3. 緣由: 瀏覽器

出於安全的考慮,對於XMLHttpRequest,瀏覽器默認設置爲不容許跨域訪問。(IE8例外,具體爲何沒有獲得合理的解釋) 安全

注:加載本地文件被當作跨域行爲。 async

4. 容許跨域訪問配置: url

(1)chrome啓動時加上參數"--allow-file-access-from-files"(聽說這個能夠,還有待驗證)。

5. 參考同類型問題文章

[1] http://stackoverflow.com/questions/10865869/origin-null-is-not-allowed-by-access-control-allow-origin?lq=1

[2] http://my.oschina.net/LinBandit/blog/33160

[3] http://www.cnblogs.com/accessking/archive/2012/05/12/2497000.html

[4] http://www.ghugo.com/origin-null-is-not-allowed-by-access-control-allow-origin/

相關文章
相關標籤/搜索