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一下纪念折腾的日子

jQuery 中使用 `$.getJSON()` 方法发送 GET 请求时,可以传递一些参数来定制请求的行为。以下是一些常用的参数: 1. `url`:指定要发送请求的 URL。可以是相对路径或绝对路径。 2. `data`:一个普通对象或 URL 编码字符串,用于发送到服务器的额外数据。这些数据将附加在 URL 的查询字符串中。 3. `success`:一个回调函数,用于在请求成功时执行。回调函数接收返回的数据作为参数。 4. `error`:一个回调函数,用于在请求失败时执行。回调函数接收 XMLHttpRequest 对象、错误信息和可选的错误类型作为参数。 5. `complete`:一个回调函数,无论请求成功或失败都会执行。回调函数接收 XMLHttpRequest 对象和请求状态作为参数。 以下是一个示例代码,演示了如何使用 `$.getJSON()` 方法并传递参数: ```javascript $.getJSON('example.php', {param1: 'value1', param2: 'value2'}, function(data) { // 请求成功时的处理逻辑 console.log(data); }) .fail(function(xhr, textStatus, error) { // 请求失败时的处理逻辑 console.log(textStatus + ": " + error); }) .always(function(xhr, textStatus) { // 请求完成后的处理逻辑 console.log("Request completed with status: " + textStatus); }); ``` 在上述代码中,我们使用 `$.getJSON()` 方法发送 GET 请求到 `example.php`,并传递了一个对象 `{param1: 'value1', param2: 'value2'}` 作为参数。请求成功时,回调函数会接收到返回的数据,并在控制台上输出。如果请求失败,会执行错误处理函数。无论请求成功或失败,都会执行最后的完成处理函数。 这些参数可以根据你的具体需求进行定制,以便满足不同的请求场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值