java - 向服务器发送 DELETE 时出现错误 405 方法不允许错误

标签 java angularjs spring rest crud

当我尝试删除时,我收到以下响应:405 方法不允许。 在我的日志中写道,允许 GET,但不允许 DELETE。

Java:

   @ResponseBody
   @RequestMapping(method = RequestMethod.DELETE, value = "/{id}")
   public void delete(@PathVariable String id) {
     speakerService.delete(id);
   }

Angularjs

  app.factory('SpeakerResource', function ($resource) {
      return $resource('rest/speaker/:speakerId',
    {
        speakerId: '@speakerId'
    },
    {
        'update': { method: 'PUT' }
    },
     {
         'delete': { method: 'DELETE', params: { 'id': 'speakerId' }}

     }
    )
 });

扬声器服务

 this.delete = function (id, callback) {

    SpeakerResource.delete({ speakerId: id }, function () {
        callback();
    });

}

最佳答案

我不知道你的完整代码,我也不是 AngularJS 的专家,但看起来你想向 URL <hopefullySomething>/{id} 发送一个 DELETE 请求。 (路径变量)。但看起来您发送了一个 DELETE 请求,因此一些带有参数 id <hopefullySomething>?id={id} 的 URL (请求参数)。

这个问题和答案进一步解释了路径变量和请求参数之间的区别 @RequestParam vs @PathVariable

关于java - 向服务器发送 DELETE 时出现错误 405 方法不允许错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26697071/

相关文章:

java - Mockito:默认返回值

angularjs - 在 Chrome 应用程序 (CCA) 中使用 Google OAuth 时遇到问题

spring - Spring Oauth2 中的 CORS 错误

java - 无法解析 Hibernate validator 消息

原语的 Java 泛型方法

java - Elasticsearch 传输客户端 java 客户端

java - Gradle 任务 --help 打印到控制台而不是我的应用程序执行

javascript - 带下拉菜单的 Angular Pills

javascript - 如何改变div的颜色

java - 将 spring-boot 中的过滤器应用于特定 url 模式的注释