我试图返回如下的AJAX响应数据。
function reqNodelistByField( i ) {
$.ajax({
type: 'post',
url: './req.nodelist.by.field.php',
dataType: 'text',
data: { field_id:i },
success: function(data) {
r = $.parseJSON(data);
if(r.valid === false) r = false;
}
});
alert(r);
return r;
};
回应data
非常完美。但是,我不知道如何在函数外返回data
。
我只能从alert(r)
看到undefined
。
如何退回data
?
答案 0 :(得分:0)
试试这个: -
function reqNodelistByField( i,callback) {
$.ajax({
type: 'post',
url: './req.nodelist.by.field.php',
dataType: 'text',
data: { field_id:i },
success: function(data) {
r = $.parseJSON(data);
callback(r);
//if(r.valid === false) r = false;
}
});
};
使用它像: -
reqNodelistByField("value of i",function(r){
// here you use the r i.e data from ajax request
// check here
if(r.valid === false){
}
});
答案 1 :(得分:0)
alert(r)未定义,因为您正在执行异步调用,换句话说,您的脚本会进行调用并继续执行代码而无需等待调用的响应。为此,您需要在ajax成功函数中返回r
。
function reqNodelistByField( i ) {
$.ajax({
type: 'post',
url: './req.nodelist.by.field.php',
dataType: 'text',
data: { field_id:i },
success: function(data) {
r = $.parseJSON(data);
if(r.valid == false) {
return false
}
else{
return true
}
}
});
};
答案 2 :(得分:0)
尝试完成Docs here。
function reqNodelistByField( i ) {
$.ajax({
type: 'post',
url: './req.nodelist.by.field.php',
dataType: 'text',
data: { field_id:i },
}).done(function(r){
alert (r)
console.log(r)
});
};