用法
jQuery.getJSON( url [, data ] [, success ] ) => jqXHR
jQuery.getJSON( url [, data ] [, success ] ) => jqXHR
说明:使用 GET HTTP 请求从服务器加载 JSON-encoded 数据。
-
添加的版本:1.0
jQuery.getJSON( url [, data ] [, success ] )
-
url类型:String包含请求发送到的 URL 的字符串。
-
data类型:PlainObject 或 String与请求一起发送到服务器的普通对象或字符串。
-
success类型:Function(PlainObject数据,String文本状态,jqXHRjqXHR)请求成功时执行的回调函数。
-
这是一个简写的 Ajax 函数,相当于:
|
发送到服务器的数据作为查询字符串附加到 URL。如果 data
参数的值是一个普通对象,它会在附加到 URL 之前转换为字符串并进行 url 编码。
大多数实现将指定一个成功处理程序:
|
当然,这个例子依赖于 JSON 文件的结构:
|
使用这种结构,该示例循环访问请求的数据,构建一个无序列表,并将其附加到正文中。
success
回调传递返回的数据,该数据通常是由 JSON 结构定义并使用 $.parseJSON()
方法解析的 JavaScript 对象或数组。它还传递了响应的文本状态。
从 jQuery 1.5 开始, 这success
回调函数接收一个"jqXHR" 对象(在jQuery 1.4,它收到了XMLHttpRequest
目的)。但是,由于 JSONP 和 cross-domain GET 请求不使用XHR, 在这些情况下jqXHR
和textStatus
传递给成功回调的参数未定义。
重要的:从 jQuery 1.4 开始,如果 JSON 文件包含语法错误,请求通常会静默失败。出于这个原因,请避免频繁使用 hand-editing 的 JSON 数据。 JSON 是一种数据交换格式,其语法规则比 JavaScript 的对象文字表示法更严格。例如,JSON 中表示的所有字符串,无论是属性还是值,都必须包含在double-quotes 中。有关 JSON 格式的详细信息,请参阅https://json.org/.
JSONP
如果 URL 包含字符串 "callback=?"(或类似的,由服务器端 API 定义),则将请求视为 JSONP。有关详细信息,请参阅$.ajax()
中对jsonp
数据类型的讨论。
jqXHR 对象
从 jQuery 1.5 开始,所有 jQuery 的 Ajax 方法都返回一个超集XMLHTTPRequest
目的。这个 jQuery XHR 对象,或 "jqXHR," 返回$.getJSON()
实现 Promise 接口,为其提供 Promise 的所有属性、方法和行为(参见延迟对象了解更多信息)。这jqXHR.done()
(为了成功),jqXHR.fail()
(对于错误),和jqXHR.always()
(用于完成,无论是成功还是错误;在 jQuery 1.6 中添加)方法采用一个函数参数,该参数在请求终止时调用。有关此函数接收的参数的信息,请参阅jqXHR 对象的部分$.ajax()
文档。
jQuery 1.5 中的 Promise 接口还允许 jQuery 的 Ajax 方法,包括 $.getJSON()
,在单个请求上链接多个 .done()
、 .always()
和 .fail()
回调,甚至在请求完成后分配这些回调.如果请求已经完成,则立即触发回调。
|
弃用通知
jqXHR.success()
,jqXHR.error()
, 和jqXHR.complete()
回调方法是从 jQuery 3.0 开始删除.您可以使用jqXHR.done()
,jqXHR.fail()
, 和jqXHR.always()
反而。
其他注意事项:
- 由于浏览器安全限制,大多数 "Ajax" 请求都受制于 same origin policy ;请求无法从不同的域、子域、端口或协议成功检索数据。
- 脚本和 JSONP 请求不受同源策略限制。
例子:
从 Flickr JSONP API 加载雷尼尔山的四张最新照片。
|
演示:
从 test.js 加载 JSON 数据并从返回的 JSON 数据中访问名称。
|
从 test.js 加载 JSON 数据,传递其他数据,并从返回的 JSON 数据中访问名称。如果发生错误,请改为记录错误消息。
|
相关用法
- JQuery jQuery.get()用法及代码示例
- JQuery jQuery.getScript()用法及代码示例
- JQuery jQuery.grep()用法及代码示例
- JQuery jQuery.globalEval()用法及代码示例
- JQuery jQuery.inArray()用法及代码示例
- JQuery jQuery.when()用法及代码示例
- JQuery Mobile jQuery.mobile.path.get()用法及代码示例
- JQuery Mobile jQuery.mobile.navigate()用法及代码示例
- JQuery Mobile jQuery.mobile.path.isRelativeUrl()用法及代码示例
- JQuery jQuery.dequeue()用法及代码示例
- JQuery jQuery.escapeSelector()用法及代码示例
- JQuery Mobile jQuery.mobile.silentScroll()用法及代码示例
- JQuery jQuery.cssNumber用法及代码示例
- JQuery jQuery.map()用法及代码示例
- JQuery jQuery.readyException()用法及代码示例
- JQuery jQuery.parseJSON()用法及代码示例
- JQuery jQuery.contains()用法及代码示例
- JQuery Mobile jQuery.mobile.path.makePathAbsolute()用法及代码示例
- JQuery jQuery.each()用法及代码示例
- JQuery jQuery.unique()用法及代码示例
- JQuery jQuery.proxy()用法及代码示例
- JQuery jQuery.ajaxSetup()用法及代码示例
- JQuery jQuery.type()用法及代码示例
- JQuery jQuery.cssHooks用法及代码示例
- JQuery UI jQuery.effects.define()用法及代码示例
注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 jQuery.getJSON()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。