2014-05-14 89 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

相关问题