我正在尝试创建一个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(它工作得很好)
第二,我厌倦了浏览器(它会抛出不支持的错误) 异常(exception))
我厌倦了小代码片段,只需从代码中复制并从列表中删除元素
@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/