0

在我的 js 文件中,我有一个 Ext.Ajax.request 从表中删除用户。最重要的是发送用户名。这是我的请求代码:

Ext.Ajax.request({
    url: 'deleteUser.html',
    method: 'POST',          
    headers: {'Content-Type': 'text/html'},
    waitTitle: 'Connecting',
    waitMsg: 'Sending data...',                                     
    params: {
        username:username
    },
    scope:this,
    success: received,                                    
    failure: function(){console.log('failure');}
});

在萤火虫中,我可以看到帖子 myapp/admin/deleteUser.html。在帖子选项卡中出现用户名=示例。

在服务器端,我有一个捕捉帖子的控制器:

 @RequestMapping(method=RequestMethod.POST, value="/deleteUser")
 public @ResponseBody Map<String,String> deleteUserHandler(@RequestParam("username")String username, Model model){
    userService.deleteUser(username);
    Map<String,String> responseMap = new HashMap<String, String>();
    responseMap.put("message", "Success");
    return responseMap;
 }

如果我有 @RequestParam("username") 我收到 400 错误(不正确的请求),如果我尝试其他方法来获取参数,我会得到空值。

有人可以帮我吗?

4

1 回答 1

0
In the firebug i can see the post myapp/admin/deleteRole.html. 
In the post tab appears username=example.

你说你可以看到网络调用deleteRole.html

但在你的 ajax 和你的控制器中,它应该被称为“/deleteUser”

如果您在控制器中记录某些内容,以便我们确定该函数是否已被调用,该怎么办。

首先尝试正确映射到您的函数的 html 之间的连接

@RequestMapping(method=RequestMethod.POST, value="/deleteUser")
public @ResponseBody String deleteUserHandler(@RequestParam("username") String username){
    System.out.println("deleteUserHandler called");
    return "{\"message\" : \"success\"}";
}

如果你的函数调用它应该没问题..

于 2013-06-19T01:33:38.980 回答