jquery ajax 访问本地地址问题

56 篇文章 0 订阅

问题:

前端制作静态页面,使用ajax读取数据,前台显示,但是在chrome下显示不出来。

 

目录结构:

 

其中, chartdata.html为请求访问的页面,构造数据格式为json。(该示例已上传至我的资源)

 

查找原因:

打开Chrome,通过JavaScript调试工具,显示问题如下:

 

XMLHttpRequest cannot load file:///D:/DangDangUED/DDCommon/general/Chart/jQChart/chartdata.html. Origin null is not allowed by Access-Control-Allow-Origin.

断点调试,说是eval(data)[0]无法读取。

但是在IE以及firefox都没有问题。是由于Chrome对ajax的解析不同造成的吗?查阅jquery文档,使用$.get()的方式,还是同样的问题。

 

原来在开发的时候从来未遇到这种问题。

 

解决:

Google一把,在Stackoverflow上找到该问题的解答:

 http://stackoverflow.com/questions/4208530/xmlhttprequest-origin-null-is-not-allowed-access-control-access-allow-for-file

 

原来,ajax会对请求进行分析,比方说如果只是静态页面请求,那么地址均为 file: ,相应的采取本地策略。对于chrome,则是出现XMLHTTPRequest 无法访问的问题。

 

当把页面放置于服务器上,地址均为 http:// ,搞定!

 

PS:chrome的上网设置使用的是IE的网络设置,如果你使用了代理上网,记得在本地调试的时候,勾选“跳过本地地址的代理服务器”。

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值