2014-05-14 59 views
0

我卡在我的角度應用程序中。我在$ http.put請求中出現錯誤,因爲「無法讀取屬性」協議「undefined」。我已經看到與此錯誤相關的其他帖子。根據這些帖子,這是由於請求中存在無效的頭部。但在我的情況下,標題是有效的,因爲我的其他請求具有相同的標題正在工作。
我的控制器代碼如下:

angular.module('myWebApp').controller('updateAccountController', 
    function ($scope, $rootScope, $location,authFactory) { 
     $scope.updateAccount = function() { 
      authFactory 
        .updateAccount($scope.firstName, $scope.lastName, $scope.country) 
        .success(function (data) {}); 
     }; 
    } 
); 

我的服務如下:

var BASE = 'https://abc.com/'; 
angular.module('myWebApp').factory('authFactory', 
    function ($location, $http) { 
     var factory = {}; 

     factory.updateAccount = function (firstName, lastName, country) { 
      var config = { 
       headers: { 
        'Authorization': 'Basic ' + sessionStorage.getItem('token') 
       } 
      }; 

      var userData = '{"type":"AccountDetails","firstName":"' + firstName + 
          '","lastName":"' + lastName + 
          '","country":"' + country + '"}'; 

      return $http.put(BASE + 'account', config, userData); 
     }; 

     return factory; 
    } 
); 

請幫我解決這個問題。

+0

請考慮在提高可讀性問題重新格式化代碼。謝謝! – awendt

+0

@awsndt:我沒有:) – gkalpak

回答

1

您以錯誤的順序給出了參數$http.put()

相反的:$http.put(BASE + 'account', config, userData);

它應該是:$http.put(BASE + 'account', userData, config);

+0

謝謝@ExpertSystem。它正在工作。 – dip

相關問題