会话超时时的HTTP状态码

时间:2016-05-13 10:36:32

标签: asp.net-mvc-4 session httprequest request-timed-out

我有一个MVC 4应用程序。当我发出ajax请求并且服务器超时时,它会在客户端上抛出异常:

  

无法加载资源:服务器响应状态为500   (内部服务器错误)

所以我的问题是

a)为什么不扔401?

b)如果检查状态代码500以检查会话是否超时,是否合适?这是一个有效的条件吗?

1 个答案:

答案 0 :(得分:0)

首先,您可以在msdn中查看有关状态代码的文章: https://msdn.microsoft.com/en-us/library/aa287675(v=vs.71).aspx

a)它没有返回未经授权的(401)状态代码,因为它的内部服务器错误 - 服务器没有响应,它没有授权失败

HTTP错误500内部服务器错误 - 意味着服务器上出现了错误,因此其响应正确,您可以看到以下文章:http://www.checkupdown.com/status/E500.html

b)您可以使用动作过滤器或全局处理程序编写适当的授权失败/会话超时处理,不需要检查状态代码500,这样包装这种情况是错误的。对于会话过期处理,您可以查看这篇文章: http://forums.asp.net/t/1523066.aspx?Redirect+to+Login+after+Session+is+Expired+in+MVC