技术开发 频道

AJAX在静态HTML页面中实现权限控制的应用


【IT168技术文档】

  最近做了一个铁路局的行车规则发布系统,有点类似于一个新闻发布系统.因为数据量大,为了加快访问的速度,我把里面的规则在后台添加时生成了静态页面保存在硬盘上, 这样每次访问就不必要去数据库取数据了.但是一个问题出现了,就 是这些规则都需要登陆之后才能访问,没登陆是不允许访问的,所以必须在这些静态页面上进行权限的控制,那么在静态页面中怎么判断用户是否登陆了呢......??

  最近刚学了点AJAX,这时就派上用场了,呵呵,AJAX可以异步发送请求到服务器,然后返回一个结果,呵呵,那么这正好是我需要的,解决思路如下:

  在静态页面的模版页中写一段javascript代码,用来发送请求到服务器,在服务器端写一段代码用来检查用户是否登陆,然后返回一个结果给这个html页面,html页面根据返回的结果决定是显示还是转到登陆页面强制用户登陆,到此,问题的解决思路应该明了了,下面来看看实现的代码:

  HTML模版页TemplateRules.html代码:
  由于模版页比较长,这里只登出AJAX代码部分,即<Body>标签前面的部分
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   <script type="text/javascript" language="javascript">   //创建适用用与多种浏览器的XMLHttpRequest对象的函数   function getXMLRequester( ){   var xmlhttp_request = false;   try{   if( window.ActiveXObject ){   for( var i = 5; i; i-- ){   try{   if( i == 2 ){xmlhttp_request=newActiveXObject("Microsoft.XMLHTTP");   }else{xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0");   xmlhttp_request.setRequestHeader("Content-Type","text/xml");xmlhttp_request.setRequestHeader("Content-Type","gb2312");   }   break;}   catch(e){   xmlhttp_request = false;   }   }   }else if( window.XMLHttpRequest ){  xmlhttp_request = new XMLHttpRequest();   if (xmlhttp_request.overrideMimeType) {   xmlhttp_request.overrideMimeType('text/xml');   }   }   }   catch(e){   xmlhttp_request = false;   }   return xmlhttp_request ;   }   function IDRequest() {   //定义收到服务器的响应后需要执行的JavaScript函数   url='CheckLogin.aspx'//定义网址参数   //alert(url);   xmlhttp_request=getXMLRequester();//调用创建XMLHttpRequest的函数   xmlhttp_request.onreadystatechange = doContents;//调用doContents函数   xmlhttp_request.open('POST', url, true);   xmlhttp_request.send(null);   }   function doContents() {   if (xmlhttp_request.readyState == 4) {// 收到完整的服务器响应   if (xmlhttp_request.status == 200) {//HTTP服务器响应的值OK   var str = xmlhttp_request.responseText;//将服务器返回的字符串写到页面中ID为message的区域   if(str.length>583)   {   //self.location="../login.aspx";   location.href='../Login.aspx';   }   } else {   alert(http_request.status);   }   }   }   IDRequest();   </script>   <html xmlns="http://www.w3.org/1999/xhtml" >   <head runat="server">   <title>$Chapter$-->>$Order$-->>$Title$</title>   <link href="../StyleSheet.css" rel="stylesheet" type="text/css" />   </head>


0
相关文章