我正在使用Spring实现REST服务。当我调用delete函数时,请求没有到达控制器,并且从JS接收到错误: angular.js:12587删除Server/restapi/sites?siteId=5 500 (内部服务器错误)
我的控制器功能如下所示:
@RequestMapping(value="sites", method=RequestMethod.DELETE)
boolean deleteSite(@PathVariable("siteId") int site_id, HttpServletResponse res){
.......
}
AngularJS函数是:
$scope.deleteSite=function(){
if(confirm("Are you sure you want to delete this Site?")){
var site={};
site.siteId=sites[$scope.selectedSite].id;
console.log(site);
siteFactory.delete(site).$promise.then(function(result){
...
}
,error_on_execute);
}
}
与工厂:
serverApp.factory('referentFactory',['$resource',function ($resource){
return $resource("http://localhost:8080/Guard_Server/restapi/referents",null,{ 'update': {method: 'PUT'} });
}]);
发布于 2017-04-30 01:33:28
就像我在网址上看到的
http://localhost:8080/Guard_Server/restapi/sites?siteId=5
您应该使用@RequestParam
而不是@PathVariable
。
@RequestParam
用于访问查询参数,@PathVariable
是url的一部分。
@RequestParam:
http://localhost:8080/Guard_Server/restapi/sites?siteId=5
@PathVariable
http://localhost:8080/Guard_Server/restapi/sites/siteId/5
https://stackoverflow.com/questions/43704696
复制