Angular js如何将数据传递给删除服务?

时间:2016-10-13 16:07:13

标签: angularjs service

我在删除服务api的角度js工作时,在服务中传递数据时显示400错误请求错误。这是我调用服务的js。

$scope.deleteUser = function(id){ 
    var data = 'Id='+id;   

     DataService.deleteUser(data).then(function successCallback(response) {
        console.log('deleted'); 
    }, function errorCallback(response) { 
            console.log(response);

    }); 

}

这是删除用户的服务js。

service.deleteUser = function(data){ 
                var config = {
                    headers:  {
                        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
                        'X-Auth-Token': 'mytoken'
                    } 
                };
                return $http.delete(mainURL + '/users', data, config); 
};

这是我需要传递数据的curl api请求:

curl -v -H "X-Auth-Token: mytoken" -X DELETE -F Id=665799088 http://<ipaddress>/users

2 个答案:

答案 0 :(得分:0)

$ http.delete的第二个参数是配置,因此您需要将配置对象作为第二个参数而不是数据传递。

DELETE方法类型不接受Request主体,因此您不应将ID作为数据传递。而是试试这个http://main_url/users?Id=id

所以在你的服务中使用这个

return $http.delete(mainURL + '/users?Id='+data, config);

同时检查您如何将ID传递给API。如果您将ID作为查询参数传递,那么以上内容将起作用,但如果您将其作为路由参数传递,则上述URL将不起作用,但是从您的CURL表达式我相信您在Query字符串中传递Id并且不作为路线参数。

答案 1 :(得分:0)

根据$http DataService.deleteUser(id).then(function successCallback(response) { console.log('deleted'); }, function errorCallback(response) { console.log(response); }); 服务,delete方法只接受2个参数,url和config,这意味着您的数据当前被视为配置。您很可能希望将一些params选项传递给配置对象。

service.deleteUser = function(id){ 
                var config = {
                    headers:  {
                        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
                        'X-Auth-Token': 'mytoken'
                    },
                    params : { 
                        id : id 
                    }
                };
                return $http.delete(mainURL + '/users', config); 
            };

您的服务声明应该更像。

/users/id

另请注意,如果您负责API,那么看起来像% cqlsh -u cassandra -p cassandra % // create demo keyspace % // create users table % //insert a couple of row in the users table 的路径会更正确。