Dav*_*gar 3 ajax jquery spring
在论坛上查看讨论同一问题的不同问题后,我仍然不知道如何解决我的请求方法“DELETE”不受支持
当客户端的用户按下按钮时,会触发 Ajax 方法调用,该方法检索Ajax 调用中包含的sportId并将其发送到 spring 控制器的 Delete 方法。
阿贾克斯方法:
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);
}
})
}
Run Code Online (Sandbox Code Playgroud)
弹簧控制器:
@RestController
@RequestMapping("/sports-actions")
public class SportController {
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public Object deleteSport(@PathVariable("id") String id) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
即使我在 url 中发送 id,我仍然收到相同的错误
阿贾克斯代码:
$.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);
}
})
Run Code Online (Sandbox Code Playgroud)
@RequestParam请看看和之间的区别@PathVariable。
如果你想使用@ReqeustParam:
$.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(method = RequestMethod.DELETE)
public Object deleteSport(@RequestParam("id") String id) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想使用@PathVariable
$.ajax({
type : "DELETE",
url : "/sports-actions/" + 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;
}
}
Run Code Online (Sandbox Code Playgroud)
PS:遵循最佳实践总是好的Restful。看这里