javascript - Spring REST 错误 500

标签 javascript java angularjs spring rest

我正在使用 Spring 实现 REST 服务。当我调用删除函数时,请求未到达 Controller ,并且从 JS 收到错误: angular.js:12587 DELETE http://localhost:8080/Guard_Server/restapi/sites?siteId=5 500(内部服务器错误)

我的 Controller 功能如下:

@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'} });
}]);

最佳答案

正如我在网址中看到的

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

see this for more information

关于javascript - Spring REST 错误 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43704696/

相关文章:

javascript - 使用 Javascript 检查日期是否为给定格式

javascript - 使用传单显示半径内的标记

java - 在 PHP/Java EE 混合服务器端环境中从 PHP 访问数据库

java - 如果文件存在,如何锁定它而不创建它?

java - 解析字符串的效果不符合预期

angularjs - 有条件地对 ng-repeated 元素应用 hasDropdown 指令

javascript - 选项卡打开后,倒计时开始

javascript - 如何用JS播放声音?

angularjs - 验证失败时如何使文本框边框变红

javascript - AngularJS - 无法删除小数点后的数字