AJAX返回null?

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

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

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

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

AJAX是异步的

只有在其余代码完成运行的某个时间才会收到响应。

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

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

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

使用synchronized:

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

//它是对服务器的响应,后面执行的响应是您指定的值

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

尝试使用ajaxerror handling,以检查您的响应

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

}