0

当用户单击按钮时,我会显示一个对话框以确认它的操作,然后在服务器上执行删除操作

@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 ......但服务器上没有做任何事情......

4

3 回答 3

0

使用确认对话框。

var status = confirm("Are you sure??");
if(status == true)
{
   //Make an ajax call and delete
}
else
{
  //Do nothing.
}
于 2013-10-29T05:52:15.870 回答
0

这可能是浏览器缓存的情况。Firefox 可能会显示状态为 200,但请求永远不会离开浏览器,尝试在末尾附加一个虚拟参数,然后查看结果。

于 2013-10-29T05:29:05.777 回答
0

我改变了控制器

@RequestMapping(method = RequestMethod.GET, value = "/secure/admin/deleteuser")
@ResponseBody
public void deleteUser(@RequestParam("username") String userName) {
}

和那个工作文件

于 2013-10-29T18:06:04.447 回答