jquery ajax调用问题

jquery ajax call question

在jquery ajax语句中,我希望从服务器接收一个有效负载,并在另一个函数中处理它。我只是在函数的语法方面遇到问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    $.ajax({
    url: 'mypgm.pgm',
    type:'POST',
    dataType: 'json',
    data:   'action=add' +
             '&techno=' + techno +
             '&activity=' + activity,
    success: ajax_callback(msg),
    error:function (xhr, ajaxOptions, thrownError){
                    alert(xhr.status);
                    alert(thrownError);
        }      
    });
}

    function ajax_callback(msg) {

        alert(msg);
    }

响应

1
2
3
4
5
{"response": {
   "success":"0",
   "message":"The Activity has been added."
    }
}


$.ajax()的成功回调处理程序可以采用以下值:

1
success(data, textStatus, jqXHR)

来源:http://api.jquery.com/jquery.ajax/

所以函数回调是这样的:

1
2
3
4
function ajax_callback(data, textStatus, jqXHR)    
{
  alert(data.response)
}

注意我是如何用这种方式创建一个命名函数的,而不是将它分配给一个变量的。如果您只关心数据,那么您只需关闭最后两个参数:

1
2
3
4
function ajax_callback(data)    
{
  alert(data.response)
}


回调应该在Ajax调用之前定义,并将函数的签名更改为:

1
2
3
var ajax_callback = function(data, textStatus, xhr) {
    // parse the data.responseText to json
}

你也可以选择使用$.getJSON()


试试这个:

1
2
3
4
5
6
7
8
9
$.ajax({
    url: 'mypgm.php',
    type: 'POST',
    dataType: 'json',
    data: 'action=add' + '&techno=' + techno + '&activity=' + activity,
    success: function(data) {
        alert(data)
    }
});