我正在尝试使用ajax从我的服务器获取信息。页面xxx.php是一个只写有123的页面。但是,当我想返回该页面的内容时,它将返回null。
function myFunct(){
$.ajax({
url: 'xxx.php',
success: function(data) {
return data;
}
});
}
var data = myFunct(); //nothing.
答案 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);
}
});
}