【发布时间】:2017-12-14 13:46:11
【问题描述】:
在论坛上看了不同的问题谈论同样的问题后,我仍然不知道如何解决我的请求方法'DELETE'不支持
客户端中的用户按下按钮时会触发 Ajax 方法调用,该方法检索包装在 Ajax 调用中的 sportId 并发送到 spring 控制器删除方法。
Ajax 方法:
function removeRow(link) {
var sportId = link.getAttribute("data-sport-id");
$.ajax({
type : "DELETE",
url : "/sports-actions",
data: {id : sportId},
contentType: "application/json",
dataType : 'json',
success: function (result) {
console.log(result);
},
error: function (e) {
console.log(e);
}
})
}
弹簧控制器:
@RestController
@RequestMapping("/sports-actions")
public class SportController {
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public Object deleteSport(@PathVariable("id") String id) {
return null;
}
}
编辑:
即使我在 url 中发送 id,我仍然会收到相同的错误
Ajax 代码:
$.ajax({
type : 'DELETE',
contentType: "application/json",
url : "/sports-actions?id="+sportId,
dataType : 'json',
success: function (result) {
console.log(result);
},
error: function (e) {
console.log(e);
}
})
【问题讨论】:
-
检查您的
AJAX请求,您没有在请求 url 中传递 id。相反,您发送的是正文。 url 可以是 -> url:'/sports-actions/' + sportId. -
我仍然遇到同样的错误,我以前也这样做过。
-
查找
@PathVariable和@RequestParam之间的区别。在您的编辑案例场景中,使用@ReqeustParam。 -
哦,我真的忘记了,这是解决方案的一部分。它有效