发布请求在angularjs中无效 - 资源服务

时间:2014-04-15 21:07:47

标签: angularjs angularjs-directive angularjs-scope angular-ui

我正在尝试将帖子请求发送到带有帖子数据的服务器 它将请求发送到服务器,但格式不正确

请求网址如/ rest / api / modifyuser /?currentPassword = admin& newPassword = admin

就像GET请求 - (可能是这个问题)

我是angularjs的新手。请分享想法来解决这个问题

这是我的代码

In controller
       var currentPass = "admin";
        var newPass = "admin";
        var confirmPass = "admin";

        var authToken = "abcdef";

        User.changePassword(currentPass, newPass, confirmPass, authToken, function(response) {
         angular.forEach(response, function (item) {
             alert("resp"+ item);
         });
        });

在服务中

UIAppResource.factory('User', function($resource) {
    return {
        changePassword: function(currentPass, newPass, confirmPass, authtoken, callback) {
           var Resq = $resource(baseURL + "modifyuser", {}, {
                'query': {
                    method: 'POST',
                    params: {
                        'currentPassword': currentPass,
                        'newPassword': newPass,
                        'confirmPassword': confirmPass
                    },
                    headers: {
                       'Accept':'application/json',
                       'Content-Type':'application/json',
                       'X-Internal-Auth-Token': authtoken
                    },
                    isArray: false
                }
            });
            Resq.query(callback);
        }
    };
});

提前致谢

1 个答案:

答案 0 :(得分:1)

我不想说你做错了..但你是def。虐待事物。使用POST ng-resource的默认方式是使用save。其次,发送数据的默认方式是使用您想要的数据实例化$resource工厂。请参阅下面的_resource。我们传递了我们想要的数据,它会自动转换它,如果它是POST在体内发送它,或者在GET的情况下,它将变成查询参数。

UIAppResource.factory('User', function($resource) {
   return {
       changePassword: function(currentPass, 
                                newPass, 
                                confirmPass, 
                                authtoken, 
                                callback
       ) {
          var Resq = $resource(baseURL + "modifyuser", {}, {
            'save': {
                method: 'POST',
                headers: {
                   'Accept':'application/json',
                   'Content-Type':'application/json',
                   'X-Internal-Auth-Token': authtoken
                }             
            }
        });
        var _resource = new Resq({
                    'currentPassword': currentPass,
                    'newPassword': newPass,
                    'confirmPassword': confirmPass
        });
        _resource.$save(callback);
      }
  };
});