jquery ajax调用问题

Posted

技术标签:

【中文标题】jquery ajax调用问题【英文标题】:jquery ajax call question 【发布时间】: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 正在响应,根据您在此处的响应 - 究竟是什么问题? 【参考方案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 似乎更灵活。

以上是关于jquery ajax调用问题的主要内容,如果未能解决你的问题,请参考以下文章

WCF Ajax 调用不适用于 Jquery $.ajax

PHP / jQuery - Ajax 调用中的单引号加倍

ajax调用后Jquery事件不会触发

如何在从 jquery ajax 调用成功返回时显示 JQuery 对话框

Jquery Ajax调用asmx出错问题

Ajax 调用失败。使用 Jquery .ajax 函数发出简单的请求