2016-08-19 53 views
2

這真的很奇怪。我在我的應用程序中使用AngularJS。在登錄期間,我發出HTTP POST請求;數據發送正確,我收到正確的答覆。然後,我註銷 - 這將我返回到登錄頁面 - 並執行相同的http req,但數據不是由發佈請求發送的。在console.log中我看到$ scope數據是正確的 - 只是POST數據沒有被髮送。 如果我對登錄頁面進行了硬刷新,它會再次運行。所以我的問題是連續的請求沒有被刷新。這裏是我的登錄功能 -AngularJS - POST請求在第一次請求成功後不發送數據

$scope.login = function() {  
     var request = $http({ 
      method: "POST", 
      url: URL + "login", 
      crossDomain: true, 
      data: this.loginData 
     }); 
     request.success(function(data) {     
      var response = angular.fromJson(data); 
      if(!response["error"]) { 
       sessionStorage.email = response["email"]; 
       sessionStorage.password = response["password"]; 
       sessionStorage.userId = response["id"];     
       $location.path('/dashboard');       
      } else { 
       $scope.responseMessage = response["message"][0]; 
      } 

     }); 
     request.error(function(data) { 
      console.log(data); 
     }); 
    } 

這是我的註銷功能 -

$scope.logout = function() { 
     sessionStorage.clear();   
     $location.path("/login"); 
    } 
+0

那麼這可能是一個可怕的答案,但在頂部只是把var request = null;這將與承諾沒有得到妥善解決有關。 –

+0

沒有工作:( –

+0

嘗試通過$ scope訪問this.loginData,例如$ scope.loginData –

回答

0

找到了答案,並在情況下,在這裏張貼任何運行到類似的問題。 設置內容類型作品的標頭:

var request = $http({ 
      method: "POST", 
      url: URL + "login", 
      crossDomain: true, 
      headers: { 
       "content-type": "application/json" 
      }, 
      data: this.loginData 
     });