JQuery的getJSON方法

前段时间研究一个仿win7的web前端桌面,其他的问题大致都看明白了,就是getJSON这个函数始终获取不到相应的数据。困扰了好长时间才解决,纪录下经验

getJSON语法如下

jQuery.getJSON(url,data,success(data,status,xhr))
参数描述
url必需。规定将请求发送的哪个 URL。
data可选。规定连同请求发送到服务器的数据。
success(data,status,xhr)

可选。规定当请求成功时运行的函数。

额外的参数:

  • response - 包含来自请求的结果数据
  • status - 包含请求的状态
  • xhr - 包含 XMLHttpRequest 对象 

实际上是简写的ajax函数

$.ajax({
  url: url,
  data: data,
  success: callback,
  dataType: json
});

发送到服务器的数据可作为查询字符串附加到 URL 之后。如果 data 参数的值是对象(映射),那么在附加到 URL 之前将转换为字符串,并进行 URL 编码。

传递给 callback 的返回数据,可以是 JavaScript 对象,或以 JSON 结构定义的数组,并使用 $.parseJSON() 方法进行解析。

-------

以上是基本描述,下面是自己的经验

getJSON没有返回值,也就是很难判断错误的类型,主要有如下:

1.json文件的格式。即所请求的url文件。JSON是严格定义好的数据格式,哪怕只是一个标点错误都会导致函数返回失败,所以自己写JSON文件一定要很小心。一般大型网站是用后台按规则生成静态文件或者获取php返回的对象。

2.要在服务器环境,浏览器直接打开本地文件可能有问题。经过试验,本地打开简单的获取字符串数据并添加到文本区是可以的,但是append.(html)插入网页元素则不行。具体原因可能是涉及到跨域访问。

这个问题困扰了好久,起初还以为是getJSON写错了,折腾换成ajax也是不行。放在apache服务器上才能正常执行,如下图对比。代码不变,数据是getJSON+append添加的


因为所用到JQuery的其他函数在本地打开都是完全正确的,即本地访问和服务器访问效果相同。唯有这个是例外,mark一下纪念折腾的日子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值