错误400错误请求Ajax JQuery到Spring Controller

时间:2014-05-11 20:06:55

标签: jquery ajax spring

我在尝试将表单数据发布到Spring Controller时遇到错误400,我在这里尝试了一些帖子,但是没有用于表单数据,我使用了我在其他ajax帖子中使用的相同模式,但是有些是使用@ModelAtributte,在这种情况下我需要加载两个ModelAndView,我不知道

我得到的序列化表格是:

idModelo=11&carroRetirada=1&quantidadeMax=78&quantidadeRetirada=1

Ajax代码是:

$.ajax({
            url: '/catalog/add-modelosemuso',
            data: $('#form-retirada').serialize(),
            type: 'post',
            async: false


        }).success(function () {
            console.log("sent");
            $('#container-modelo-list').load('/catalog/list-modelo');
        })
            .fail(function () {
                console.log("Server failed");
            })
            .always(function (xhr, status, error) {
                console.log("processing ajax...");
                console.log(xhr, status,error);
                console.log($('#form-retirada').serialize());

            });

控制器是:

 @RequestMapping(value = "/catalog/add-modelosemuso",
                    method = RequestMethod.POST)
    public
    @ResponseBody
    String addModeloEmUso(@RequestParam("carroRetirada")
                          Integer carroRetiadaId,
                          @RequestParam("quantidadeReitada")
                          Integer quantidadeRetirada,
                          @RequestParam("quantidadeMax")
                          Integer quantidadeMax,
                          @RequestParam("idModelo")
                          Integer idModelo)
    {
        int restante = quantidadeMax - quantidadeRetirada;

        Carros carro = new Carros();
        carro.setIdCarro(carroRetiadaId);

        ModeloPeca modelo = new ModeloPeca();
        modelo.setIdPeca(idModelo);
        modelo.setQuantidade(restante);

        ModelosEmUso modelosEmUso = new ModelosEmUso();
        modelosEmUso.setQuantidadeUsada(quantidadeRetirada);
        modelosEmUso.setCarrosByCarrosIdCarro(carro);
        modelosEmUso.setModelopecaByModeloPecaIdPeca(modelo);

        modeloRepository.save(modelo);
        modelosEmUsoRepository.save(modelosEmUso);
        return null;
    }

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

HTTP请求没有名为quantidadeReitada的必需HTTP参数,其中最相似的是quantidadeRetirada(即 retirada 而不是 reitada ,无论这些意思是什么)。请记住将所有AJAX请求参数与值RequestParam匹配。