2010-02-25 28 views
2

您正在使用ASP.NET MVC和jQuery。你做了很多AJAX调用。如果用户点击某个内容并且会话超时,您想要通知用户。有没有人有一个很好的现有解决方案,还包括在启动AJAX请求后通知用户超时?我们已经知道非AJAX ASP.NET应用程序的解决方案,这些解决方案包括检测Global.asax中的超时并重定向到特定页面。但是,重定向AJAX请求是有问题的,因为用户要么看不到,要么看不到它,还是会看到它在错误的上下文。)是否有一个ASP.NET MVC和jQuery的AJAX超时现有的解决方案?

这事几乎所有的应用需求,所以我只是想确保我不会推倒重来。谢谢!

回答

3

这是我做的:当我的服务器检测到会话超时,它重新验证页面进行响应,而且还设置了一个特殊的头中的响应。对于Ajax,我只需要我的处理程序查找该头文件,并且如果它看到它,就会强制重新加载周围的页面(使用额外的“nonce”参数以确保它绕过浏览器缓存)(即location.href或其他)。

请注意,我的解决方案并不是专门针对ASP.NET的。

+0

没问题,ASP.NET不需要...我对客户端处理更加好奇。所以,如果这是一个普通的请求/响应,他们会得到超时通知/登录页面,如果这是一个AJAX请求/响应,你检查这个头并重定向到那个页面?这听起来像一个体面的方式来处理它。 – Pete 2010-02-25 19:19:01

+0

到目前为止,它对我来说工作正常:-)请注意,外部页面重新加载时发生的情况是服务器再次检测到超时*。因此,它会重定向到re-auth页面,并将原始URL保存为表单参数,以便在认证后可以将用户返回到原来的页面。如你所想,设置和检测标题非常简单 - 它甚至不必具有任何特定的值。 – Pointy 2010-02-25 19:31:05

+0

谢谢Pointy。我今晚得到了这个解决方案。这提供了更好的用户体验,并且我不需要在服务器端处理任何不同的页面请求和ajax请求。 – Pete 2010-02-26 01:51:04

相关问题