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');}
});

firebug では、投稿 myapp/admin/deleteUser.html を見ることができます。投稿タブに username=example が表示されます。

サーバー側には、投稿をキャッチするコントローラーがあります。

 @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 エラー (不正な要求) を受け取り、params を取得する別の方法を試みると null になります。

誰か助けてくれませんか?

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 に答える