根据AJAX响应使函数返回false

时间:2015-12-07 11:06:55

标签: javascript jquery ajax

我有这个函数,我从另一个函数

中调用
function CheckForSession() {
        var str="chksession=true";

        jQuery.ajax({
                type: "POST",
                url: "chk_session.php",
                data: str,
                cache: false,
                success: function(res){
                    if(res == "0") {
                      alert('Your session has been expired!');
                    }
                }
        });
}

如果响应等于0,如何使整个函数CheckForSession 返回false?

P.S。在我的应用程序中,对此函数的响应只能是1或0。

1 个答案:

答案 0 :(得分:3)

由于AJAX请求的异步性,您无法做到这一点。

最适合您的方法是使用promises

function CheckForSession() {
    var str="chksession=true";

    return jQuery.ajax({
            type: "POST",
            url: "chk_session.php",
            data: str,
            cache: false,
            success: function(res){
              blabla = res;
                if(res == "0") {
                  alert('Your session has been expired!');
                }
            }
    });
}

CheckForSession().then(function(data) {
    // successful
}, function() {
    // error
})
默认情况下,

jQuery.ajax返回promise对象,当ajax请求完成时我将被解析。然后,您可以根据结果编写您的操作

http://api.jquery.com/jquery.ajax/