不允许 Java DeleteMapping 方法

标签 java spring

我正在尝试创建一个API来从存储中删除某个ID; 这是我的代码。

API Controller :

@DeleteMapping("{cId}")
@ResponseStatus(HttpStatus.OK)
public String delete(@PathVariable String cId) {
    compareService.delete(cId);

    return "redirect:/compare";
}

服务:

public void delete(String cId) {
    compareLogic.delete(cId);
}

逻辑:

 public void delete(String cId){
        System.out.println("A: " + sessionModel.getCIds());
        List<String> update = sessionModel.getCIds();
        update.remove(new String(cId));
        System.out.println("B: " + sessionModel.getCIds());
      }

但是当我执行 api 时它会显示

{
success: false,
warning: false,
error: "405",
error_description: "Method Not Allowed"
}

光看代码有什么可能的原因吗? 非常感谢,

最佳答案

只是我厌倦了简单的代码片段,您能否尝试理解并(也尝试遵循我的建议)

当您从浏览器端(从地址栏)点击时,它不适用于 POST/PUT/DELETE 调用,如果您尝试在地址栏中输入,它实际上是在浏览器中运行的如果是 GET 请求则不支持其他格式

只是我添加了两张我已经厌倦了 Browser 和 PostMan 的屏幕截图

首先我已经厌倦了 POSTMAN(它工作得很好)

enter image description here

第二,我厌倦了浏览器(它会抛出不支持的错误) 异常(exception))

enter image description here

我厌倦了小代码片段,只需从代码中复制并从列表中删除元素

@DeleteMapping("{cId}")
    public String delete(@PathVariable String cId) {
         List<String> arr=new ArrayList<String>(3);
         arr.add("A");
         arr.add("B");
         arr.add("C");
         arr.remove(cId);
         for (String string : arr) {
            System.out.println(string);
        }

        return "redirect:/compare";
    }

关于不允许 Java DeleteMapping 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59764639/

相关文章:

java - 自定义 Spring AOP 注解不适用于默认方法

Spring 的 PropertyPlaceHolderConfigurer 不会忽略无法解析的文件

java - typeMismatch.java.util.List 尝试设置列表时

java - 如何在其运行方法完成后清理线程?

java - keycloak 的 java 适配器创建的连接上的 "keep-alive" header

java - 为什么 Matcher.find() 在 Matcher.lookingAt() 之后运行时返回 false?

java - 为什么这个方法不同步?

java - java.util.Scanner 中的错误

java - 从个人部门迁移到对齐规则

java - Spring MVC Controller 将 JSON 文件解析为 REDIS DB 的 HASHMAP