为什么控制台.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";
}
}
整个代码对我来说似乎是错误的。实际上你的工厂应该是这样的:
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。