返回AJAX调用数据的JavaScript函数

这个问题在这里已经有了答案:

  • 如何返回来自异步调用的响应? 33个答案

  • 使用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

    上一篇: JavaScript function that returns AJAX call data

    下一篇: Set variable value on success