2 lnfxcf lnfxcf 于 2016.01.28 11:10 提问

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个回答

jakeswang
jakeswang   2016.01.28 11:14

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

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.28 11:27

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

qq_19558705
qq_19558705   Ds   Rxr 2016.01.28 11:56

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

xionglangs
xionglangs   Rxr 2016.01.28 12:07

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

Royal_lr
Royal_lr   Ds   Rxr 2016.01.28 12:48

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

Royal_lr
Royal_lr   Ds   Rxr 2016.01.28 12:55

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

lnfxcf
lnfxcf   2016.01.28 13:50

问题已经解决,原因是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
lnfxcf 额~也不是上述原因,修改成Get方式就好了,这厮为嘛?
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片