如何从jquery ajax请求中获取返回数据?

function isNewUsername(str){ var result; $.post('/api/isnewusername', {username:str}, function(data) { result = data.result; }, "json"); return result; } 

所以,我的问题很简单,但我无法弄清楚。 我想从isnewusername函数访问结果。 我很好奇答案,因为我花了1个小时。 谢谢

作为使用jQuery post函数的快速注释,您使用的是jQuery ajax函数的简写forms,这意味着您正在进行异步调用。 因此,只有在成功响应时,jQuery才会调用您的函数并将服务器端调用的结果放入成功回调的data参数中。

为了显示:

 function isNewUsername(str){ $.post('/api/isnewusername', {username:str}, function(data) { alert(data.result); }, "json"); } 

也就是说,您可以更改代码以指定同步回调,但可能会锁定用户浏览器,直到返回请求为止。

它不能按照你的方式完成,因为ajax查询是异步的(意思是,它们不会阻塞,结果不会立即出现,它会在服务器实际响应时出现)。 您必须使用结果调用另一个函数(或者,只有在实际可用时才对结果执行某些操作)。

例如:

 function isNewUsername(str){ $.post('/api/isnewusername', {username:str}, function(data) { someOtherFunction(data.result); }, "json"); }