从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) {
根据.getJSON
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
});
我的问题是{key:val}
从通话中返回的数据,然后是r
内的function(r)
?
我看到val
中的函数传递,但{key:val}
答案 0 :(得分:2)
{key:val}
实际上是在AJAX调用服务器中发送的内容。
r
参数是从AJAX调用返回的数据。数据作为参数返回到回调函数中。
看一下documentation中的函数签名,我们可以看到每个参数应该是什么 -
jQuery.getJSON( url [, data] [, success(data, textStatus, jqXHR)] )
- url - 包含发送请求的URL的字符串。
- data - 使用请求发送到服务器的地图或字符串。
- success(data,textStatus,jqXHR) - 请求时执行的回调函数 成功。
您的r
参数是返回data
回调的success
。在您的情况下,它是JSON对象。
答案 1 :(得分:1)
{key:val} // The data sent to the server
r包含您的回调结果
r.items.Phones // PhoneSelect
r.items.NoteBooks // notebookSelect
答案 2 :(得分:0)
当您调用$ .getJSON时,它需要三个参数1. Url 2. INut Data 3.回调函数。所以对你的问题的回答是,当ajax调用完成时,jQuery将调用代替函数(R)传递的函数,其中R是服务器对ajax调用的响应。