微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ajax请求失败原因

今天使用Ajax进行页面访问,页面访问失败,但通过浏览器地址栏直接访问又可以访问成功。英文比较差,不清楚提示是什么意思,经多番查找,终于找到一个比较合理的解释,具体如下:

1. javascript代码

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

(1)alert提示

(2)Chrome Network结果:

(3)Chrome控制台(Console)错误提示

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

3. 原因:

出于安全的考虑,对于XMLHttpRequest,浏览器认设置为不允许跨域访问。(IE8例外,具体为什么没有得到合理的解释)

注:加载本地文件被当做跨域行为。

4. 允许跨域访问配置:

(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/

原文地址:https://www.jb51.cc/ajax/165993.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐