我知道ajax成功函数是无法返回数据的,所以我试过回调函数,但它仍然有未定义的返回。我已经通过变量 responseText < / strong>,但我不想那样做。所以帮我回调函数返回数据!!!
HTML 的
<div id="address">
<table>
<thead>
<th>Department</th><th>Name</th><th>Age</th><th>Address</th>
</thead>
<tbody>
</tbody>
</div>
JS
getAddress callback()返回null
$(document).ready(function(){
$.ajax({
url : "header.php",
dataType : "json",
success : function (d) {
var temp = getAddress(callback);
console.log(temp) // undefined
var data = JSON.parse(temp);
$.each(data,function(i,d){
$("#address tbody").append("<tr><td>"+d[i].dept_name+"</td><td>"+d.Name+"</td><td>"+d.Age+"</td><td>"+d.Address+"</td></tr>");
});
}
});
});
function callback(result){
return result;
}
function getAddress(callback){
$.ajax({
url: 'address.php',
async : false,
dataType : 'json',
success: function(result){
callback(result);
}
});
}
答案 0 :(得分:2)
您正以错误的方式使用回调。使用ajax调用返回的值的逻辑应该在回调
中$(document).ready(function() {
$.ajax({
url: "header.php",
dataType: "json",
success: function(d) {
getAddress(function(data) {
console.log(data) // undefined
//var data = JSON.parse(temp); not required as you have `dataType: 'json'
$.each(data, function(i, d) {
$("#address tbody").append("<tr><td>" + d[i].dept_name + "</td><td>" + d.Name + "</td><td>" + d.Age + "</td><td>" + d.Address + "</td></tr>");
});
});
}
});
});
在您的代码中,您使用回调调用getAddress
,但由于getAddress
方法未返回任何内容,temp
的值将不确定。