返回AJAX调用数据的JavaScript函数
这个问题在这里已经有了答案:
使用jQuery 1.5,您可以使用全新的$.Deferred
功能,这是$.Deferred
用于此目的的功能。
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.ajax({ url: "example.php" })
.success(function() { alert("success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
// perform other work here ...
// Set another completion function for the request above
jqxhr.complete(function(){ alert("second complete"); });
资源
除非你想同步调用它,否则你不能返回AJAX调用返回的数据(而且你不信任我)。 但是,您可以返回的是由AJAX调用返回的数据的承诺,您可以通过非常优雅的方式实现它。
( 更新:请注意,目前jQuery Promises与Promises / A +规范不兼容 - 此答案中的更多信息。)
基本上你可以返回你的$ .ajax(...)调用的返回值:
function checkUserIdExists(userid){
return $.ajax({
url: 'theurl',
type: 'GET',
cache: false,
data: {
userid: userid
}
});
}
和一个调用你的函数的人可以像这样使用它:
checkUserIdExists(userid).success(function (data) {
// do something with data
});
如果您有兴趣,请参阅我的这篇文章以获得更好的解释和演示。
你可以传递一个回调函数:
function checkUserIdExists(userid, callback) {
$.ajax({
...
success: callback
});
}
checkUserIdExists(4, function(data) {
});
链接地址: http://www.djcxy.com/p/9483.html