DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX基礎知識 >> AJAX在靜態HTML頁面中實現權限控制的應用
AJAX在靜態HTML頁面中實現權限控制的應用
編輯:AJAX基礎知識     

  最近做了一個鐵路局的行車規則發布系統,有點類似於一個新聞發布系統.因為數據量大,為了加快訪問的速度,我把裡面的規則在後台添加時生成了靜態頁面保存在硬盤上, 這樣每次訪問就不必要去數據庫取數據了.但是一個問題出現了,就 是這些規則都需要登陸之後才能訪問,沒登陸是不允許訪問的,所以必須在這些靜態頁面上進行權限的控制,那麼在靜態頁面中怎麼判斷用戶是否登陸了呢......??

  最近剛學了點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>

 

  此處要提一下:上面文件中的以下代碼部分是根據服務器端返回結果決定是否強制登陸的關鍵部分,因為我們是通過xmlhttp_request.responseText;來看返回結果的,而這個返回文本是服務器端頁面的html,所以在此處我們通過返回的這個文本長度來判斷服務器端返回的是已登陸還是未登陸,如果已登陸則長度肯定小於583,(當然這個長度會因為每個人的做法不同而不同,可根據實際情況來確定一下服務器端的文件HTML的長度),這樣就可以進行判斷了

  var str = xmlhttp_request.responseText;//將服務器返回的字符串

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved