c# – 你如何克服这个问题? Jquery ajax服务器超时
我正在使用asp.net mvc,C#和
jquery.我的网站大量使用ajax.这导致了一个问题,我不知道如何解决它(比我目前的解决方案更好地解决它).
场景. >用户登录我的网站 – cookie设置,服务器超时30分钟 问题 >就服务器和ajax而言,ajax请求有效并且成功响应被发回.所以我无法检查错误,因为请求成功,而不是正确的数据回来. 解决方案1 >用户登录网站. >用户无法单击任何内容,因为对话框会阻止该操作.如果某些用户使用firebug或者他们可以移除它,但服务器超时仍然会生效,他们将获得丑陋的版本(不要在意). >如果用户发出ajax请求,则重置服务器端的超时以及客户端的超时. 问题 >用户可以走开,另一个人可能会来,超时消息可能会启动,但他们仍有可能有45秒的时间尝试发出新请求并重置超时.这非常低,并不太担心. 所以2号真的是我想找到另一个解决方案的重要原因. 解决方案2(推测). 我想也许如果我可以制作我自己的响应标题或者其他什么,如果服务器超时那么我可以发送一些303重定向或我可以检查的那种性质的东西然后根据它进行jquery重定向. 但是我不知道在我的C#代码中该怎么做,或者我可以做那样的事情. 解决方法
您可以随时在LogOn操作中添加自定义HTTP标头,该标头可以被AJAX调用拦截并相应地执行操作:
public ActionResult LogOn() { Response.AddHeader("X-LOGON","LogOn"); return View(); } 并且在成功回调检查是否存在此标头: $.ajax({ url: '/home/someaction',success: function (data,textStatus,XMLHttpRequest) { if (XMLHttpRequest.getResponseHeader('X-LOGON') === 'LogOn') { // the LogOn page is being displayed // probably timeout or unaithorized => act accordingly } } }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |