gpt4 book ai didi

java - 如何修复 Spring boot Controller 从 AJAX DELETE 请求获取空数据?

转载 作者:行者123 更新时间:2023-11-30 05:42:57 25 4
gpt4 key购买 nike

我尝试使用@QueryParam、@PathVariable 和@RequestParam,但我的 Controller 没有从AJAX 调用获取数据请求。我的其他方法也有同样的方法。只有 DELETE 请求不起作用,并且我得到空值。我已经提到过这个Ajax delete method in spring boot但它对我不起作用。

//AJAX DELETE
var id = {"id":$("#deleteUserIdInput").val()};

$("#deleteUserModal").modal("hide");

$.ajax({
url : "http://localhost:3000/delete-user",
datatype : "json",
method : "DELETE",
data : id,
contentType : "application/json",
error:function(data){
console.log(data.entity);
}
}).done(function(data) {
console.log(data.entity)
}
);

//Controller
//http://localhost:3000/delete-user
@RequestMapping(value="/delete-user", method = RequestMethod.DELETE)
@ResponseBody
public Integer deleteUser(@QueryParam("id") Integer id){
return id;
}

我在传递给请求之前测试数据,它不为空。我希望返回传递给请求的数据,例如 1,但我得到了未定义。

最佳答案

您似乎正在将 ID 作为请求正文发送。这意味着您需要让 deleteUser 方法接收正文作为参数。

我建议您从特定 URL 中删除,即 http://localhost:3000/users/ {id}

对应的方法声明变为:

@DeleteMapping("/users/{id}")
@ResponseBody
public Integer deleteUser(@PathVariable("id") Integer id){
return id;
}

你的 JS 需要修改(我认为 - 我不擅长 JS)(再次 - 我不是 JS 人,抱歉,如果这太糟糕了!):

$.ajax({
url : "http://localhost:3000/users/" + $("#deleteUserIdInput").val(),
datatype : "json",
method : "DELETE",
contentType : "application/json",
error:function(data){
console.log(data.entity);
}
}).done(function(data) {
console.log(data.entity)
}
);

关于java - 如何修复 Spring boot Controller 从 AJAX DELETE 请求获取空数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55348450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com