在Backbone中,每次执行Ajax调用时如何触发方法?

时间:2015-05-18 10:23:14

标签: javascript jquery ajax authentication backbone.js

因此,每次我在Backbone应用程序中进行AJAX调用时,我都希望找到一个基本上脱离服务器的方法,并检查我是否使用JWT令牌进行了身份验证。这个令牌有一个到期时间,所以让我们说为了争论,到期时间是1分钟。如果我留在该页面并在30秒后上传文件,一切都很好。如果我在2分钟后上传文件,它应该检查我是否经过身份验证,看到我不是,然后将我启动回登录页面。

现在,我当然可以在我的每一个AJAX调用中添加这个调用方法(我不会在下面这样做,但这只是为了说明我的意思......)< / p>

if (isAuthenticated === true) {

            $.ajax({
                url: '/dosomething',
                type: 'POST',
                data: data,
                processData: false,
                cache: false,
                contentType: false
            }).done(function () {

                //do stuff here
            }).fail(function (jqXHR, textStatus) {
                console.log(jqXHR);
                console.log(textStatus);
            });

}

问题是我有很多AJAX调用,所以我觉得通过在每个AJAX调用中添加这个方法调用来浪费时间。我对Backbone的所有细节都不太熟悉,所以我只是想知道是否有办法将我的方法绑定到所有AJAX调用?

干杯!

1 个答案:

答案 0 :(得分:0)

你试过ajaxSend吗? https://api.jquery.com/ajaxSend/

$(document).ajaxSend(function(e, xhr) {
    if (isAuthenticated === false){
        xhr.abort();
    }
});