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请求页面拦截跳转超时提示