jQuery ajax responseText'undefined'

时间:2011-03-28 14:15:22

标签: jquery ajax

我有一些jQuery将两个变量发布到php脚本中。 PHP非常简单,只需根据给出的内容返回一个字符串,即“更新成功”,我想在页面上以某种方式使用它。

我第一次点击时收到一条提示“未定义”,任何进一步的点击,一切正常。很确定我不远,但我无法解决这个问题!

我使用过firebug并且数据已发布,所有尝试都会收到正确的响应。

$(document).ready(function(){

    $('#updatehol').click(function() {
    additions  = $('#additions').attr('value');
    deductions   = $('#deductions').attr('value');
    datastring = 'additions='+ additions +'&deductions='+ deductions;

    $.ajax({
                type: "POST",
                data: datastring,
                url: "doadjust.php",
                complete: function(data) {
                alert(data.responseText);
                }
               });
    });
});

5 个答案:

答案 0 :(得分:2)

对它进行排序。 Ajax函数中需要async: false选项。

$.ajax({
    type:     "POST",
    data:     datastring,
    url:      "doadjust.php",
    dataType: "html",
    async:    false,
    success:  function(data) {
        alert(data);
    }
});

答案 1 :(得分:1)

只有alert(data) ??

你会得到什么?

顺便说一下,它的成功还没有完成:

        $.ajax({
                type: "POST",
                data: datastring,
                url: "doadjust.php",
                success: function(data) {
                   alert(data);
                }
               });
    });

答案 2 :(得分:1)

这适合我。

var min = $.ajax(
        {
            type: 'POST',
            url: 'LineChart.asmx/LineChrt',
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async: false,
            success: function(data) {
                // alert("SUCESS");
            },
            error: function(xhr, status) {
                alert("hatada:" + xhr.responseXML);
            },
            onComplete: function(data) {

            }

答案 3 :(得分:0)

您应该添加json类型,例如:

$('#test').on('click', '.testclass', function(event){
    $.post($(this).attr('href'), 
     function(data) {
        alert(data.text);
    }, 'json');
}); 

答案 4 :(得分:0)

这是一个老问题,但我遇到了同样的问题,并在jQuery文档中找到了答案。

responeText和responseXml仅在使用dataType:text或xml时进行了解决。如果您使用任何其他数据类型,它将作为成功回调中的第一个参数传递。

来自jQuery文档:

  

数据类型

     

$ .ajax()函数依赖于服务器来提供信息   关于检索到的数据。如果服务器将返回数据报告为   XML,结果可以使用普通的XML方法或jQuery来遍历   选择。如果检测到其他类型,例如示例中的HTML   在上面,数据被视为文本。

     

使用dataType选项可以实现不同的数据处理。   除了普通的xml,dataType可以是html,json,jsonp,script或者   文本。

     

text和xml类型返回数据而不进行处理。数据是   简单地传递给成功处理程序,通过   jqXHR对象的responseText或responseXML属性,   分别