用法
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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
