怎么样将jquery $.post返回的数据return?
functionFindSystemLogCateList(ParentId){varnjsn;$.post("jq/GetSystemLogCategory.aspx"...
function FindSystemLogCateList(ParentId) {
var njsn;
$.post("jq/GetSystemLogCategory.aspx", { ParentId: ParentId }, function (data) {
njsn= eval(data);
});
return njsn;
}
我这样调用这个函数时返回为:未知类型
我需要在别的地方调用post的返回值
我该怎么写?
在$.post内部时njsn正确,一到外部就是未定义了 展开
var njsn;
$.post("jq/GetSystemLogCategory.aspx", { ParentId: ParentId }, function (data) {
njsn= eval(data);
});
return njsn;
}
我这样调用这个函数时返回为:未知类型
我需要在别的地方调用post的返回值
我该怎么写?
在$.post内部时njsn正确,一到外部就是未定义了 展开
1个回答
展开全部
你这样直接返回是不行的 ajax 请求 分为 同步 和异步。
默认情况是异步的,执行到post不会等到返回数据 就直接执行了 return njsn;所以返回 的值 就是null;你可以 加个回调函数。
function FindSystemLogCateList(ParentId,callback) {
$.post("jq/GetSystemLogCategory.aspx", { ParentId: ParentId }, function (data) {
callback(eval(data));
});
}
或者设置 为同步方式
async (Boolean) : (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
默认情况是异步的,执行到post不会等到返回数据 就直接执行了 return njsn;所以返回 的值 就是null;你可以 加个回调函数。
function FindSystemLogCateList(ParentId,callback) {
$.post("jq/GetSystemLogCategory.aspx", { ParentId: ParentId }, function (data) {
callback(eval(data));
});
}
或者设置 为同步方式
async (Boolean) : (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询