2015-10-04 41 views
0

我有一個JSON源並希望通過發佈請求獲得結果。AngularJS和JSON的代碼問題

當我用逗號測試POSTMAN擴展時,它工作得很好。但是當我用angularJS做這件事時,頁面不斷加載,並且chrome控制檯顯示錯誤。

我的代碼是在這裏:

angular.module('loginApp', []).controller('loginController', function ($scope, $http) { 
$scope.userName = ''; 
$scope.userPass = ''; 
$scope.output = function() { 
    var params = JSON.stringify({ 
      username: '******', 
      password: '******' 
     }); 
    $http({url: "http://xx.xx.xx.xx/api/user/login.json", 
     method: 'POST', 
     data: params, 
     headers: { 
      'Content-Type': 'application/json', 
      'Accept': 'application/json' 
     } 
    }).then(function (response) { 
     return response; 
    }); 
}; 
}); 

任何幫助,將不勝感激:)

+4

什麼是在控制檯中的錯誤? –

+0

嘗試不進行字符串化並指定標題,這種類型的請求應該是開箱即用的。 – PiniH

+0

我已經嘗試過沒有stringify()...和頭被指定 – Omer

回答

0

試試這個,和後期的錯誤後,如果發生:

var LoginApp = angular.module('loginApp', []); 
LoginApp.controller('loginController', function ($scope, $common) { 
    $scope.userName = ''; 
    $scope.userPass = ''; 

    $scope.output = function() { 
     var params = JSON.stringify({ 
      username: '******', 
      password: '******' 
     }); 

     $common.ajax("http://xx.xx.xx.xx/api/user/login.json", params, "POST").then(function (response) { 
      console.log(response); 
      return response; 
     }); 
    }; 
}); 

LoginApp.factory("$common", function($http, $q) { 
    function ajax(url, param, method) { 
     var request = $http({ 
      method: method, 
      url: url, 
      data:param 
     }); 

     var promise = request.then(
      function(response) { 
       return(response.data); 
      }, 
      function(response) { 
       console.log("Ocurred error: " + response); 
       return($q.reject("Something went wrong")); 
      } 
     ); 
     return promise; 
    } 
    return({ 
     ajax:ajax 
    }); 
}); 
+0

你還沒有在代碼中定義標題? – Omer

+0

我不明白 –

+0

我在說這個:標題:{ 'Content-Type':'application/json', 'Accept':'application/json' } – Omer

0

試試這個:

$scope.output = function() { 
    var params = { 
     username: '******', 
     password: '******' 
    }; 

    $http.post("http://xx.xx.xx.xx/api/user/login.json", params) 
     .then(function (response) { 
     return response; 
     }); 
}; 

你也應該將http要求移動到service。這是一個不好的做法,把它放在controller

+0

它在控制檯上顯示這個錯誤,如果這樣做:無法加載資源:服務器響應的狀態爲401(未經授權:CSRF驗證失敗) – Omer

+0

您可以嘗試將URL更改爲'「http:// xx。 xx.xx.xx/API /用戶/登錄「'? –

+0

已嘗試...相同的錯誤:( – Omer