SpringMVC 接受Ajax传递参数为什么报400异常

ajax代码

 function delUserInfo() {       
    jQuery.ajax({
        type : 'POST',
        contentType : 'application/json',
        url : 'user/delUser',
        data : {'id':'12'},
        dataType : 'json',
        success : function(data) {
            alert("删除成功!");
        },
        error : function(data) {
            alert("error")
        }
    });
}

后台代码

 @RequestMapping(value = "/delUser", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, String> delUser(@RequestParam(value="id", required=true) String id) {
        logger.info("捕获到前台传递过来的id:" + id);
        UserInfo tmpUserInfo = new UserInfo();
        tmpUserInfo.setId(Integer.parseInt(id));
        userManage.deleteUser(tmpUserInfo);

        Map<String, String> map = new HashMap<String, String>(1);
        map.put("success", "true");
        return map;
    }

7个回答

首先检查能不能进入后台,返回类型不对,可以改成一个String类型,如type=“1”;

你的Ajax请求参数data的key id去掉单引号试试。400响应码说明你的请求无法有问题,服务器无法解释。

400是错误请求,原因可能是User实体类中id是Long或者int型,而你给它一个String,所以就报错。

图片说明,语法错误,看看项目上有相似的方法吗,对照下,看看为什么跳不过去。

可以f12看下控制台的请求有没什么问题

把content-type改成这样application/x-www-form-urlencoded,,试试

问题已经解决,原因是data不是json对象

 function delUserInfo() {
    var tmp = {'id':'12'};
    var sendData = JSON.stringify(tmp);
    jQuery.ajax({
        type : 'POST',
        contentType : 'application/json',
        url : 'user/delUser',
        data : sendData,
        dataType : 'json',
        success : function(data) {
            alert("删除成功!");
        },
        error : function(data) {
            alert("error")
        }
    });
}
lnfxcf
NumenEarth 额~也不是上述原因,修改成Get方式就好了,这厮为嘛?
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问