2014-05-11 1 views
0

Je suis confronté à l'erreur 400 en essayant de poster un formulaire de données à Spring Controller, j'ai essayé quelques messages ici, mais rien n'a fonctionné avec les données de formulaire, j'ai utilisé le même modèle que j'ai utilisé dans d'autres messages ajax, mais certains utilisent est @ModelAtributte, et dans ce cas je besoin de charger deux ModelAndView, wich je ne sais pasErreur 400 Mauvaise requête Ajax JQuery au contrôleur de ressort

la forme sérialisée je reçois est:

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

le code Ajax est:

$.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()); 

      }); 

et le contrôleur est:

@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; 
    } 

Merci pour toute l'aide!

Répondre

0

La requête HTTP n'a pas le paramètre HTTP requis appelé quantidadeReitada, le plus similaire qui est présent est quantidadeRetirada (à savoir Retirada au lieu de reitada, quels qu'ils veulent dire). N'oubliez pas de faire correspondre tous les paramètres de requête AJAX avec les valeurs RequestParam.

+0

Merci kryger, était une erreur de distraction, et en passant, _retirada_ en portugais signifie _retrait_ en anglais;) –

Questions connexes