今天使用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. 参考同类型问题文章
[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/