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); } });
}