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." } } |
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 } |
你也可以选择使用
试试这个:
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) } }); |