java - Java DeleteMapping 方法不允许
问题描述
我正在尝试创建一个 api 来从存储中删除某个 ID;这是我的代码。
API 控制器:
@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 请求,那么它不会支持其他格式
只是我添加了两个我厌倦了浏览器和 PostMan 的屏幕截图
首先我厌倦了邮递员(它工作得很好)
其次我厌倦了浏览器(它会抛出不支持的异常)
我已经厌倦了小代码片段,只需从您的代码中复制并从列表中删除元素
@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";
}
推荐阅读
- reactjs - 来自 React Navigation Drawer 的 React Native Display Modal
- php - url中的PHP参数累积参数
- ruby-on-rails - React 表单中的服务器端 Rails 模型验证
- angular - 读取数据 NGXS Angular
- java - 避免内存泄漏 ThreadLocal SimpleDateFormat
- c# - 当 Orientation="Vertical" 时,按钮中的图像会填满整个空间
- wordpress - 在 WordPress 的事件日历中修改门票块
- linux - EXPORT_SYMBOL 动态内存位置
- tableau-api - 在 GitHub Pages 上嵌入 Tableau 仪表板
- javascript - 如何克服赛普拉斯测试自动化工具中的隐身挑战