完成后访问ajax响应对象

时间:2014-01-14 16:10:44

标签: javascript ajax

请求完成后,我尝试将search ajax响应设置为query变量 。但是,我收到了一个未定义的警报。我想知道是否有人知道如何实现这一目标?

我感谢任何建议,

非常感谢提前!

    var query ='';
    $.ajax({
        type: 'POST',
        url: "ajax/search.php?&reqPage="+reqPage,
        data: $(this).serialize(),
        dataType : 'JSON',
        success: function(search){
            $('.search-table').html(search.rows);           
        },
        complete: function(search){
            query = search.query;
            alert(query); //output undefined
        },
        error: function(ts) { alert(ts.responseText) }
    });

1 个答案:

答案 0 :(得分:2)

jquery中的第一个完整回调给出了2个参数。并且没有数据,只有jqXHR和textStatus。因为完整的回调调用错误。所以你的代码应该是:

var query ='';
$.ajax({
    type: 'POST',
    url: "ajax/search.php?&reqPage="+reqPage,
    data: $(this).serialize(),
    dataType : 'JSON',
    success: function(search){
        $('.search-table').html(search.rows);           
        query = search.query;
    },
    error: function(ts) { alert(ts.responseText) }
});

当请求被强制并且没有服务器错误时,它将被调用。在您的情况下,答案是有效的JSON对象。 数据未通过完整回调传递,因为错误可能无法通过答案。