Ajax请求中的Redirect()

页面中有一个IsLogin()方法,用以判断该请求的触发者是否登录,如果登录了,则执行查询操作,如果没有登录,则Redirect()至登录界面

页面使用了较多的Ajax请求来获取数据,而在Ajax请求中,若运行至Context.Response.Redirect()则出错。

网上的一些资料给出的解决方案是在Ajax请求中增加一个状态码,然后人为的去获取该状态码,进行重定向。

 

IsLogin()方法需要同时处理普通请求与Ajax请求,所以,在处理之前,应当知道当前请求是否为Ajax请求。

参考了网上的资料:http://www.cnblogs.com/sosoft/p/3793425.html

http://code.iteye.com/blog/1458364

http://www.cnblogs.com/sosoft/p/3793425.html

在登陆判断之前,先判断该请求是否为Ajax请求,如果不是,直接重定向,如果是,则由JavaScript进行重定向。代码如下

HttpContext context = HttpContext.Current;
            bool isAjaxRequest;
            try
            {
                string ss = context.Request.Headers["X-Requested-With"];
                isAjaxRequest = (ss != null && ss == "XMLHttpRequest") ? true : false;
            }
            catch (System.Exception ex)
            {
                isAjaxRequest = false;
            }
posted @ 2015-07-02 15:10  DayDreamInGIS  阅读(1352)  评论(0编辑  收藏  举报