Angularjs- $ ngSource-DELETE:如何获取服务器端返回的响应数据?

时间:2016-04-23 08:27:38

标签: angularjs

为什么console.log(响应)没有包含来自服务器的响应。如何获得SpringMVC返回的“1”或“0”?

var app = angular.module('MyApp', ['ngResource']);


app.factory('baseRequest', ["$resource", function ($resource) {

    return $resource("/apis/:id/:method/", {method: '@method', id: '@id'}, {

        query: {method: 'get', isArray: false}
    });

}]);


app.controller("MyCtrl", ["$scope", "baseRequest", function ($scope, baseRequest) {


    $scope.deleteUser = function (id) {

        baseRequest.delete({method: "deleteUser.req", id: id}, function (response) {

          //I can't get the response data from server side here. 

            console.log(response);

        }, function (error) {

            console.log(error);

        });
    };

}]);

这是我的SpringMVC文件,它重新输入信息“1”或“0” ,但我不知道如何得到它?

    @ResponseBody
    @RequestMapping(value = "/{id}/deleteUser", method = RequestMethod.DELETE)
    public String deleteUser(@PathVariable("id") Integer id) {

        System.out.println(id);


        if (userDao.deleteUser(id)) {


            return "1";

        } else {

            return "0";
        }

    }

1 个答案:

答案 0 :(得分:0)

整个代码对我来说似乎不对。实际上你的工厂应该是这样的:

app.factory('baseRequest', ["$resource", function ($resource) {

return $resource("/apis/:id", { id: '@id'}, {

    query: {method: 'get', isArray: false}
});

}]);

你的控制器应该是这样的:

app.controller("MyCtrl", ["$scope", "baseRequest", function ($scope, baseRequest) {


$scope.deleteUser = function (id) {

    baseRequest.delete({id: id}, function (response) {

      //I can't get the response data from server side here. 

        console.log(response);

    }, function (error) {

        console.log(error);

    });
};

}]);

当您为端点定义资源时,angularjs会自动为您创建四种方法(动词)(获取,删除,放置,发布)。所以你不需要将方法名称传递给web api。