首页 新闻 赞助 找找看

ajax请求,但是session已过期如何处理

0
[已解决问题] 解决于 2016-04-06 10:00

前台使用ajax请求数据,后台收到数据会判断当前用户是否有效,如果失效希望跳转至登陆页面,但是因为是ajax,无法跳转,有没有一个比较好的解决方案可以解决这个问题啊

问题补充:

如果需要在每个ajax请求返回判断,或者error事件中处理,我每个ajax请求都要这么写,但是如果封装一下jquery的ajax请求,参数多少也不好做,我就想要一个全局的方法能够处理这个问题

FallingStone的主页 FallingStone | 初学一级 | 园豆:38
提问于:2016-02-03 15:00
< >
分享
最佳答案
0

看看这个例子就明白了

http://www.jb51.net/article/60588.htm

奖励园豆:5
_Arnold | 小虾三级 |园豆:635 | 2016-02-03 15:14
其他回答(6)
0

根据ajax的返回参数判断 ,

success:function(result){

  if(result=="未登陆"){

    location.href='/登陆页面/'

  }

}

1行受影响 | 园豆:113 (初学一级) | 2016-02-03 15:08
1

后台判断返回结果,ajax里面判断结果,做跳转处理。

单恋 | 园豆:678 (小虾三级) | 2016-02-03 15:13
1

一样可以啊,  比如服务器端返回403.  然后在error事件里面进行处理就可以了。

 

$.ajax({
            "url": "url",
            "success": function (a, b, c) {
                
            },
            "error": function (a, b, c) {
                if(c.status == 403) {
                    window.location = "登录url";
                }
            }
        });

----------------------------------------------补充-----------------------------------------------

(function ($) {
            $.myAjax = function (options, error) {
                var options = $.extend({}, options, {
                    "error": function (a, b, c) {
                        if ($.isFunction(error))
                            error(a, b, c);

                        if (c.status == 403)
                            window.location = "登录url";
                    }
                });
                $.ajax(options);
            };
        })(jQuery)

        $(function () {
            //正常调用
            $.myAjax({
                "url": "url",
                "success": function () {

                }
            });
            //如果需要处理其他的错误
            $.myAjax({
                "url": "url",
                "success": function () {

                }
            }, function (a, b, c) {
                //这里处理其他的错误
            });
        });
写代码的小2B | 园豆:4371 (老鸟四级) | 2016-02-03 15:30
0

http://api.jquery.com/category/ajax/global-ajax-event-handlers/

这个是标准答案.

吴瑞祥 | 园豆:29449 (高人七级) | 2016-02-03 17:16
1

顶楼上,可以注册全局的ajaxSuccess或ajaxError事件去处理。

webaspx | 园豆:1973 (小虾三级) | 2016-02-04 10:23
0

后台判断返回结果一般用status=数字,ajax里在回调函数判断结果,再做转处理。

飞翔の金雕 | 园豆:364 (菜鸟二级) | 2016-02-04 22:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册