我想创建一个 JavaScript 函数,它返回 jQuery AJAX 调用的值。我想要这样的东西。
function checkUserIdExists(userid){
return $.ajax({
url: 'theurl',
type: 'GET',
cache: false,
data: {
userid: userid
},
success: function(data){
return data;
}
});
}
我知道我可以通过将 async 设置为 false 来做到这一点,但我宁愿不这样做。
最佳答案
您无法返回 AJAX 调用返回的数据,除非您想同步调用它(而且您也不想 – 相信我)。但是您可以返回的是 AJAX 调用返回的数据的 promise ,并且您实际上可以以非常优雅的方式实现它。
(更新: 请注意,目前 jQuery Promises 与 Promises/A+ specification 不兼容。 - 更多信息this answer .)
基本上,您可以返回 $.ajax(...) 调用的返回值:
function checkUserIdExists(userid){
return $.ajax({
url: 'theurl',
type: 'GET',
cache: false,
data: {
userid: userid
}
});
}
调用你的函数的人可以像这样使用它:
checkUserIdExists(userid).success(function (data) {
// do something with data
});
参见this post of mine如果您有兴趣,可以获取更好的解释和演示。
关于返回 AJAX 调用数据的 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5150571/