AJAX返回null?

时间:2012-09-30 16:17:50

标签: jquery ajax

我正在尝试使用ajax从我的服务器获取信息。页面xxx.php是一个只写有123的页面。但是,当我想返回该页面的内容时,它将返回null。

function myFunct(){
    $.ajax({
        url: 'xxx.php',
        success: function(data) {
            return data;
        }
    });
}

var data = myFunct(); //nothing.

5 个答案:

答案 0 :(得分:8)

请注意,ajax是'异步'。因此,myFunct()完成执行时可能无法接收对服务器调用的响应。 您可以将处理来自服务器调用的数据的逻辑放在ajax的“成功”中。

function myFunct(){
    $.ajax({
        url: 'xxx.php',
        success: function(data) {
           // processMyData(data);
        }
    });
}

答案 1 :(得分:4)

AJAX 异步

只有在> 其余代码完成后,您才会得到一段时间的响应。

相反,您需要使用回调返回值,就像$.ajax那样:

function myFunct(callback){
    $.ajax({
        url: 'xxx.php',
        success: function(data) {
            // Do something to the data...
            callback(data);
        }
    });
}

myFunct(function(result) {
    ...
});

答案 2 :(得分:1)

您可以在同步模式下使用(尽管建议使用异步回调以避免“冻结”代码)。

使用synchronized:

function myFunct(callback){
   return $.ajax({
        url: 'xxx.php',
        async: false
    }).responseText;
}

答案 3 :(得分:0)

var globalVal;

    function myFunct(){
        $.ajax({
            url: 'xxx.php',
            success: function(data) {
                alert(data); // you can see you data
                globalVal= data;
            }
        });
    }

//它是对服务器的响应,并且响应稍后执行,您指定了值

myFunct(); //nothing.
alert(globalVal) 

答案 4 :(得分:0)

尝试使用ajax错误处理,以检查您的回复

function myFunct(){
$.ajax({
    url: 'xxx.php',
    success: function(data) {
        alert(data);
    },
    error:  function(jqXHR, textStatus){
       alert("Status: "+ jqXHR.status);
       alert("textStatus: " + textStatus);
    }

});

}