回归价值观

时间:2011-02-04 11:39:29

标签: jquery ajax return-value

我在jquery脚本上使用此函数:

    function recogerEventos(id) {
    var respuesta = $.ajax( {
        type: 'GET',
        url: 'eventos.php',
        data: 'cmd=recoge&id='+id,
        success: function(data) {
        //alert(data);

            return data;
        },
        error : function () {
            return false;
        }
    }).responseText;
    //alert("asdfksjfhajk"+respuesta);
    return respuesta;
}

如果我取消注释警报(数据)它会显示返回字符串值,但是当我取消注释警报(“asdffksd ...”)时它只显示随机字母而不再显示,我需要发送此'respuesta'在其他文档中获取字符串的值。

如果有人知道如何获得它,请解释我,我很绝望

感谢所有人,卡洛斯

2 个答案:

答案 0 :(得分:2)

您应该为recogerEventos函数提供回调函数。所以你可以在ajax请求完成时调用它。

function recogerEventos(id, callback, errorcallback) {
    var respuesta = $.ajax( {
        type: 'GET',
        url: 'eventos.php',
        data: 'cmd=recoge&id='+id,
        success: callback,
        error : errorcallback
    });
}

或者您可以直接在RecogerEventos中进行更新:

$.ajax({
  url: "test.html",
  cache: false,
  success: function(html){
    $("#results").append(html);
  }

答案 1 :(得分:0)

另一种方法是将async选项设置为false,这样您就可以直接从调用ajax返回数据。例如

var respuesta = $.ajax({
    url:   'eventos.php',
    async: false,
    ...
}).responseText;

这种方法的缺点是它会在等待请求完成时阻止浏览器。