为什么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";
}
}
答案 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。