Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ajax请求处理ASP.NETMVC2中的请求重定向_Ajax_Asp.net Mvc 2 - Fatal编程技术网

使用ajax请求处理ASP.NETMVC2中的请求重定向

使用ajax请求处理ASP.NETMVC2中的请求重定向,ajax,asp.net-mvc-2,Ajax,Asp.net Mvc 2,我开发了一个ASP.NET MVC2应用程序,并实现了登录功能 我还有其他一些视图包含ajax调用。有时,我会发现ajax调用显示登录页面 为了解决这个问题,我尝试模拟这种情况,但是我从应用程序中得到的响应代码是200,这是OK 我正在使用ASP.NETMVC2。为什么我得到了200,而实际上我应该得到302服务器重定向,用于从当前视图重定向登录页面 指导我处理这种情况 为什么我得到了200台,而实际上我应该得到一台302服务器 从我的当前视图重定向登录页面 这是因为jQuery遵循重定向,最终

我开发了一个ASP.NET MVC2应用程序,并实现了登录功能

我还有其他一些视图包含ajax调用。有时,我会发现ajax调用显示登录页面

为了解决这个问题,我尝试模拟这种情况,但是我从应用程序中得到的响应代码是
200
,这是
OK

我正在使用ASP.NETMVC2。为什么我得到了200,而实际上我应该得到302服务器重定向,用于从当前视图重定向登录页面

指导我处理这种情况

为什么我得到了200台,而实际上我应该得到一台302服务器 从我的当前视图重定向登录页面

这是因为jQuery遵循重定向,最终得到200和登录页面。我建议您使用,它演示了一种非常优雅的方式,可以配置ASP.NET为未经验证的请求发送401状态代码,假设此请求是使用AJAX调用发出的。然后,您的客户端代码将如下所示:

$.ajax({
    url: '/foo',
    type: 'POST',
    data: { foo: 'bar' },
    statusCode: {
        200: function (data) {
            alert('200: Authenticated');
            // Do whatever you was intending to do
            // in case of success
        },
        401: function (data) {
            alert('401: Unauthenticated');
            // Handle the 401 error here. You can redirect to 
            // the login page using window.location.href
        }
    }
});

谢谢你指出那篇文章。我认为我们从这个模块中获得的好处是值得的。但他说他还没有测试。如果你已经这么做了,让我知道,否则我会在这篇文章中测试和更新我的评论。