用法
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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。