怎么样将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正确,一到外部就是未定义了
展开
 我来答
百度网友4c688e6
2012-02-29 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:89
采纳率:0%
帮助的人:93.8万
展开全部
你这样直接返回是不行的 ajax 请求 分为 同步 和异步。
默认情况是异步的,执行到post不会等到返回数据 就直接执行了 return njsn;所以返回 的值 就是null;你可以 加个回调函数。
function FindSystemLogCateList(ParentId,callback) {
$.post("jq/GetSystemLogCategory.aspx", { ParentId: ParentId }, function (data) {
callback(eval(data));
});
}
或者设置 为同步方式
async (Boolean) : (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式