2015-07-21 64 views
1

我是angularjs的新手,試圖編寫一個用於登錄驗證的代碼。以下是我的代碼,用於檢查輸入的用戶名和密碼是否正確。如果在按登錄按鈕後用戶名或密碼不正確,我該如何顯示「無效的用戶名」和「無效的密碼」消息?我想顯示錯誤消息而不是使用alert.Thank您。AngularJs:服務器端用戶名和密碼驗證

<script> 
     var app=angular.module("app",[]); 
     app.controller("MainCtrl",function($scope,$http,$window) { 
     $scope.checkLogin = function(result) { 
      //$http.get("login.jsp") 
          $http.get("login.jsp?sqlStr=select UsrNm,UsrPwd from dbo.tblUsr where UsrNm = '" + $scope.user_name + "'") 
      .success(function(response) { 
       $scope.myData = response; 
       if(!angular.isObject($scope.myData[0])) 
               alert("Invalid user name"); 

       else 
       { 
        if($scope.myData[0].USRPWD!== $scope.password) 
         alert("Invalid password"); 
        else 
         //alert("Successfully logged in"); 
         $window.location.href = 'MainPage.html'; 
       } 
      }) 
      .error(function(){ 
       alert("Resource not found"); 

      }); 
      }; 
     }); 
    </script> 

回答

0

像這樣的工作:

<script> 
    var app=angular.module("app",[]); 
    app.controller("MainCtrl",function($scope,$http,$window) { 
    $scope.checkLogin = function(result) { 
     //$http.get("login.jsp") 
         $http.get("login.jsp?sqlStr=select UsrNm,UsrPwd from dbo.tblUsr where UsrNm = '" + $scope.user_name + "'") 
     .success(function(response) { 
      $scope.myData = response; 
      if(!angular.isObject($scope.myData[0])) 
              alert("Invalid user name"); 

      else 
      { 
       if($scope.myData[0].USRPWD!== $scope.password) 
        alert("Invalid password"); 
        $scope.hasError = true; 
        $scope.errorText = "Invalid Password"; 
       else 
        //alert("Successfully logged in"); 
        $window.location.href = 'MainPage.html'; 
        $scope.hasError = false; 
        $scope.errorText = ""; 
      } 
     }) 
     .error(function(){ 
      alert("Resource not found"); 
      $scope.hasError = true; 
     }); 
     }; 
    }); 

,並在你的HTML:

<div ng-show="hasError">{{errorText}}</div> 

編輯 - 這真是驗證密碼,一個壞的方式,因爲它看起來你正在從服務器傳回密碼。不要這樣做,這是非常非常不安全的。您應該在服務器上使用散列驗證,然後將授權或拒絕傳回客戶端。另外,如果您在任何時候都以純文本格式發送密碼,請確保您使用的是SSL。

+0

它的工作原理和感謝您的指導。 – Sahar