我被困在我的角色应用程序中。我得到错误"无法阅读属性'协议'未定义"在我的$ http.put请求中。我看过其他与此错误相关的帖子。根据这些帖子,这是由于请求中存在无效的标头。但在我的情况下,标题是有效的,因为我的其他请求具有相同的标题正在工作 我的控制器代码如下:
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 :(得分:1)
您以错误的顺序向 $http.put()
提供了参数。
而不是:$http.put(BASE + 'account', config, userData);
应该是:$http.put(BASE + 'account', userData, config);