我正在尝试使用 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) {
...
});
您可以在同步模式下使用(尽管建议使用异步回调以避免“冻结”代码)。
使用同步:
function myFunct(callback){
return $.ajax({
url: 'xxx.php',
async: false
}).responseText;
}
尝试使用 ajax 错误处理,检查您的响应
function myFunct(){
$.ajax({
url: 'xxx.php',
success: function(data) {
alert(data);
},
error: function(jqXHR, textStatus){
alert("Status: "+ jqXHR.status);
alert("textStatus: " + textStatus);
}
});
}
var globalVal;
function myFunct(){
$.ajax({
url: 'xxx.php',
success: function(data) {
alert(data); // you can see you data
globalVal= data;
}
});
}
// 它是对服务器的响应,响应稍后执行,您分配值
myFunct(); //nothing.
alert(globalVal)