【问题标题】:jquery ajax call questionjquery ajax调用问题
【发布时间】:2011-08-28 11:25:35
【问题描述】:

在 jQuery ajax 语句中,我想从服务器接收有效负载并在另一个函数中处理它。我只是在函数的语法上有问题。

$.ajax({ 网址:'mypgm.pgm', 类型:'POST', 数据类型:'json', 数据:“动作=添加”+ '&techno=' + 技术 + '&activity=' + 活动, 成功:ajax_callback(msg), 错误:函数(xhr,ajaxOptions,抛出错误){ 警报(xhr.status); 警报(抛出错误); } }); } 函数 ajax_callback(msg) { 警报(味精); }

回应

{“回复”: { “成功”:“0”, "message": "Activity 已添加。" } }

【问题讨论】:

  • 看起来mypgm.php 正在响应,根据您在此处的响应 - 究竟是什么问题?

标签: jquery ajax call


【解决方案1】:

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

success(data, textStatus, jqXHR)

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

所以你的函数回调应该是这样的:

function ajax_callback(data, textStatus, jqXHR)     
{
  alert(data.response)
}

请注意我是如何以这种方式创建命名函数的,而不是将其分配给 var。如果您只关心数据,则可以不使用最后两个参数:

function ajax_callback(data)     
{
  alert(data.response)
}

【讨论】:

  • 看起来像这样吗?成功:成功(数据,textStatus,jqXHR),
  • 我不确定你在问什么。成功的回调处理程序的格式就像您粘贴的那样,就像我在代码中列出的那样。请试一试,如果您有任何问题,请告诉我。
  • @bob data 只是函数 ajax_callback 的一个参数。你可以在 javascript 变量名的规则中调用任何你想要的名字。可以是牛、狗、柠檬,随便你。赋予它价值的是 JQuery $.ajax 代码在成功完成 AJAX 代码后,将数据、文本状态和 ajax 对象传递给您定义的回调。
  • @bob 依次为 data 分配数据,为 textStatus 分配文本状态,并为 jqXHR 分配 ajax 对象的值。
  • 您好,感谢您的患者。我修改了上面的原始示例。但是我仍然收到“味精未定义错误”
【解决方案2】:

试试这个:

$.ajax({
    url: 'mypgm.php',
    type: 'POST',
    dataType: 'json',
    data: 'action=add' + '&techno=' + techno + '&activity=' + activity,
    success: function(data) {
        alert(data)
    }
});

【讨论】:

  • 谢谢。我想打破成功功能。
【解决方案3】:

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

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

您也可以只使用$.getJSON()

【讨论】:

  • 不确定我们是否坚持使用 json。 .ajax 似乎更灵活。
猜你喜欢
  • 1970-01-01
  • 2017-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-22
  • 2013-08-03
相关资源
最近更新 更多