2012-10-08 29 views
0

作爲隨後的數據格式從AJAX調用返回以下JQuery的代碼執行Ajax調用

{ 
    "items" : { 
    "Phones" : "PhoneSelect", 
    "NoteBooks" : "notebookSelect", 
    "Tablets" : "" 
    }, 
    "title" : "What would you like to purchase?", 
    "defaultText" : "Choose a product category" 
} 

的AJAX調用

function fetchSelect (val) { 
    $.getJSON('ajax.php', {key:val}, function(r) { 
    $.each(r.items, function (k, v) { 

據的jQuery的規格.getJSON

$.ajax({ 
    url: url, 
    dataType: 'json', 
    data: data, 
    success: callback 
}); 
  1. 我的問題是{key:val}從通話返回的數據然後function(r)裏面有什麼r

  2. 我見函數傳中val,但對於{key:val}

回答

2

{key:val}實際上是什麼被在AJAX調用發送到服務器什麼的鍵值。

r參數是從AJAX調用返回的數據。數據作爲參數返回到您的回調函數中。

縱觀在documentation函數簽名,我們可以看到每個參數應該是 -

jQuery.getJSON(url [, data] [, success(data, textStatus, jqXHR)])

  • 網址 - 包含於該請求的URL字符串發送。
  • 數據 - 一個映射或字符串,它通過請求發送到服務器。
  • success(data,textStatus,jqXHR) - 如果請求 成功執行的回調函數。

r參數是data返回到success回調。在你的情況下,它是JSON對象。

1
{key:val} // The data sent to the server 

R含有回調結果

r.items.Phones // PhoneSelect 
r.items.NoteBooks // notebookSelect 
0

當你調用$ .getJSON,這三個參數1.網址2. INut數據3.回調函數。所以你的問題的答案是,當ajax調用完成時,jQuery將調用傳遞的函數來代替函數(R),其中R是來自服務器的對ajax調用的響應。