当用户点击某个按钮时,我会显示一个对话框以确认其动作,并在我在服务器上执行删除后
@RequestMapping(method = RequestMethod.GET, value = "/secure/admin/deleteuser/{username}")
public String deleteUser(Model model, @PathVariable("username") String username, BindingResult result) {
...
}
$("#deleteUserConfirm").dialog({
autoOpen: false,
resizable: false,
height: 180,
modal: true,
buttons: {
"Delete user": function() {
var username = $(this).data('username');
var url = "/secure/admin/deleteuser/" + username;
//server call to delete this user
$.ajax({
type: "GET",
url: url
}).done(function() {
alert("second success");
}).fail(function() {
alert("error");
}).always(function() {
alert("finished");
});
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
}
});
我从不去服务器......我看到第二次成功警报并完成警报 我没有任何错误
我试过服务器
@RequestMapping(method = RequestMethod.GET, value = "/secure/admin/deleteuser")
public String deleteUser(Model model, @RequestParam("username") String username, BindingResult result) {
}
在js
$.ajax({
type: "GET",
url: "/secure/admin/deleteuser",
data: {username: "RenewalRate2"}
}).done(function() {
alert("second success");
}).fail(function() {
alert("error");
}).always(function() {
alert("finished");
});
我在chrome中看到了一个请求:
`http://localhost:8084/secure/admin/deleteuser?username=RenewalRate2`
在它的状态是200 ...但在服务器上什么也没做......
答案 0 :(得分:0)
可能是浏览器缓存的情况。 Firefox可能显示状态为200,但请求永远不会出现浏览器,尝试在末尾附加一个虚拟参数,然后查看结果。
答案 1 :(得分:0)
使用确认对话框。
var status = confirm("Are you sure??");
if(status == true)
{
//Make an ajax call and delete
}
else
{
//Do nothing.
}
答案 2 :(得分:0)
我改变了控制器
@RequestMapping(method = RequestMethod.GET, value = "/secure/admin/deleteuser")
@ResponseBody
public void deleteUser(@RequestParam("username") String userName) {
}
和那个工作文件