easyui请求页面拦截跳转超时提示

  easyui使用datagrid或者dialog等加载远程数据页面时,如果远程页面做了超时判断,转向其他页面进行登录,easyui是不会自动控制浏览器跳转到登录页面的,而是只会获取最终转向页面的数据,具体看这个:Ajax服务器端跳转重定向

  如struct拦截的拦截,判断超时自动跳转到登录页面。或者下面的data.asp代码

<%
if session("online")<>"1" then
  response.redirect "login.asp"
  response.end
end if
'....easyui数据源
%>

login.asp

<title>offline</title>
<!--其他代码-->

  easyui使用ajax请求data.asp获取数据源,但是如果长时间不操作session注销会导致跳转到login.asp页面,但是由于用的ajax,浏览器是不会跳转的,所以ajax返回login.asp的html代码不符合easyui datagrid需求的数据(如果是dialog会自动显示登录的html内容在dialog里面,至少会找到超时了),导致easyui不重绘数据。

 

  要想解决easyui请求的页面服务器端拦击或者超时跳转后,浏览器也能自动跳转到登录页面 ,可以使用jQuery.ajaxSetup注册ajax的complete事件,然后判断下返回的内容,如果包含登录页面的特殊内容就用js控制浏览器进行跳转。

    <script type="text/javascript" src="../../jquery.min.js"></script>
    <script type="text/javascript">
        jQuery.ajaxSetup({
            complete: function (xhr) {//注意修改indexOf参数为你登录页面的特殊内容。最好是数据源中不包含的防止误判
                if (xhr.responseText.indexOf('<title>offline</title>')!=-1) { alert('已经超时,请重新登录!'); location = 'login.asp'; }
            }
        });
    </script>
	<script type="text/javascript" src="../../jquery.easyui.min.js"></script>

 


原创文章,转载请注明出处:easyui请求页面拦截跳转超时提示

评论(0)Web开发网
阅读(1392)喜欢(0)不喜欢(1)easyui开发技巧