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;
            }
时间: 2024-07-30 20:00:42

Ajax请求中的Redirect()的相关文章

Ajax请求中的async:false/true的作用[转]

test.html <a href="javascript:void(0)" onmouseover="testAsync()"> asy.js function testAsync(){    var temp;    $.ajax({        async: false,        type : "GET",        url : 'tet.php',        complete: function(msg){  

ajax请求中form data与request payload之间的区别

HTTP请求过程中,get请求:表单参数以name=value&name1=value1的形式附到url的后面:  post请求:表单参数是在请求体中,也是name=value&name1=value1的形式在请求体中. POST表单请求提交时,使用的Content-Type是application/x-www-form-urlencoded,而使用原生AJAX的POST请求如果不指定请求头RequestHeader,默认使用的Content-Type是text/plain;charset

ajax请求中传递的参数中如果含有特殊字符怎么处理?

在JQUERY AJAX开发中遇到了下面的一个问题,在执行AJAX请求的时候,需要传递一个“50%”的参数,而这个参数中含有特殊字符%.这样的话就会出现问题了,我们知道服务器在发送请求的时候,会将url中的参数转化成类似于“%2C%2F%3F%3A%40%26%3D%2B%24%23”,所以在我们执行含有这样特殊字符的ajax请求的时候就会出现错误,因为我们传递的参数可能发生了变化,也可能由于参数本身中就含有特殊字符所以系统没有办法编译它. 可能会抛出这样的一个异常: 警告: Parameter

如何在ajax请求中设置特殊的RequestHeader

现在ajax应用已经相当广泛了,有很多不错的ajax框架可供使用.ajax是一个异步请求,也主要是一种客户端的脚本行为.那么,如何在请求之前为请求添加特殊的一些头部信息呢? 下面是一个简单的例子,我用jquery编写,它的ajax函数中,有一个beforeSend方法,这个方法接受一个参数,就代表了发起异步请求的XMLHttpRequest对象,我们可以用该对象的setRequestHeader方法实现我们的目的 为什么要setRequestHeader?比如,在及时通信系统中,每次获取消息或者

jquery ajax 请求中多出现一次OPTIONS请求及其解决办法

http://www.tangshuang.net/2271.html 在上一篇<服务端php解决jquery ajax跨域请求restful api问题及实践>中,我简单介绍了如何通过服务端解决jquery ajax的跨域请求问题,但是,在这个过程中,我们会发现,在很多post,put,delete等请求之前,会有一次options请求.本文主要是来讨论一下这是什么原因引起的. 根本原因就是,W3C规范这样要求了!在跨域请求中,分为简单请求(get和部分post,post时content-t

Ajax请求中的async:false/true的作用

最近做东西用到ajax,我在火狐下firebug打断点一点问题都没有,可是关了firebug,程序不进后台方法,纳闷了好久,从来没有遇到过这种情况,最后加了一个参数async:false好了,还是很纳闷,以前写了那么多ajax相关代码从来没遇到过这种情况,原来对asy:nc:false的含义不大了解,还有可能和现在这个平台有关系吧.async boolean default: trueby default, all requests are sentasynchronous (e.g. this

jquery的ajax请求中的数据处理

前台(1)js发出请求的ajax方法 1 $.ajax({ 2 url: "*.do", //url是要请求的路径 3 type: "get", //type是http请求的类型,值是"get"或者"post" 4 data: "key=" + value+ "&key=" + value+ "&key=" + value, /* data是请求时提交

jquery ajax 请求中 中文汉字的 转码问题

1.汉字参数直接跟在请求连接的后面,这样需要使用encodeURIComponent(fileName)或者encodeURI(fileName)转码两次 后台使用URLDecoder.decode(fileName, "UTF-8"); 2.如果参数发在data属性后,可以只使用encodeURIComponent(fileName)或者encodeURI(fileName)转码一次.后台使用URLDecoder.decode(fileName, "UTF-8")

jquery Ajax请求中显示Loading...

$('#btnTest').click(function(){      $.ajax({           url ---- ,根据你需要设置url路径           type:'post',           data:'name=Test',           timeout:15000,           beforeSend:function(XMLHttpRequest){               //alert('远程调用开始...');