在Backbone.js中会话过期后,如何自动重定向到登录页面?

时间:2014-09-23 06:36:17

标签: backbone.js marionette

如何处理主干木偶视图中的会话超时?由于会话超时,我的ajax调用失败(fetch方法返回错误消息),我需要将用户重定向回登录页面。

3 个答案:

答案 0 :(得分:2)

一种方法是覆盖Backbone.sync并检查失败案例中的返回值。如果是因为会话超时,则重定向到登录页面,否则处理错误。

您可以在此处看到一个示例:https://github.com/davidsulc/marionette-serious-progression-app/blob/master/assets/js/entities/common.js#L107未经授权的访问与“正常”错误的处理方式不同。此代码来自我的advanced book on Marionette

答案 1 :(得分:1)

例如:

myModel.fetch({
    success: function(){
        //do something
    },
    error: function (model, response, options) {
        if(response.status == 401){
            window.location.href = '/login';
        }
    }
});

答案 2 :(得分:0)

您可以使用jQuery的ajaxSetup

var redirectToLogin = function()
{
    App.router.navigate('login', true);
};

$.ajaxSetup(
{
    statusCode: {
        401: redirectToLogin,
        403: redirectToLogin
    }
});