以下JQuery代码执行Ajax调用

时间:2012-10-08 23:57:38

标签: 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) {

根据.getJSON

的jQuery规范
$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback
});
  1. 我的问题是{key:val}从通话中返回的数据,然后是r内的function(r)

  2. 我看到val中的函数传递,但{key:val}

  3. 的关键值是什么?

3 个答案:

答案 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调用的响应。