使用ajax请求处理ASP.NETMVC2中的请求重定向
我开发了一个ASP.NET MVC2应用程序,并实现了登录功能 我还有其他一些视图包含ajax调用。有时,我会发现ajax调用显示登录页面 为了解决这个问题,我尝试模拟这种情况,但是我从应用程序中得到的响应代码是使用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遵循重定向,最终
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
}
}
});
谢谢你指出那篇文章。我认为我们从这个模块中获得的好处是值得的。但他说他还没有测试。如果你已经这么做了,让我知道,否则我会在这篇文章中测试和更新我的评论。