Échec du chargement de la ressource: le serveur a répondu avec un statut de 400 (Bad Request) Printemps JS appel au Contrôleur ne fonctionne pas

Je suis en train d'appeler une méthode de contrôleur qui va sauver mon objet, mais lorsque j'essaie de l'url, il renvoie l'erreur http. J'ai parcouru à travers certains des problèmes similaires sur DONC, mais pas de chance. J'ai donc envie de me poser...

Voici mon Ajax (à des fins de simplicité j'ai renommé les variables):

JS:

function addDob() {
        var var1 = $("#var1").val();
        var var2 = $("#var1").val();
        var var3 = {};
     
         
        var3["var3"] = $("#var3").val(); 
        var json = JSON.stringify({
        
           var1 : var1,
           var2 : var2,
           var3 : var3
        });
           console.log(json);
        alert(json);
        $.ajax({
            url: 'add_dob',
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            dataType: json,
            success: function (data) {
                 console.log(json);
                alert(data.message);
                resetForm();
            },
            error: function () {
              
                alert("Error!");
            }
        });
    }

Voici mon controller:

@RequestMapping(value = "/add_dob", method = RequestMethod.POST, produces = "application/json")
@ResponseBody
public Map<String, Object> saveDob(@RequestBody DobavljacWrapper wrapper) {
    Map<String, Object> data = new HashMap<>();
    Dob d = new Dob();
    d.setCountryID(wrapper.getCountryID());
    d.setDobName(wrapper.getDobName());
    d.setYear(wrapper.getYear());

   dobService.save(d);
    data.put("message", "Dob was successfully saved!");
    return data;
}

Toute suggestion est la bienvenue. Si j'ai besoin d'insérer plus d'infos, faites le moi savoir. Cheers! P. S. j'ai eu un projet similaire qui fonctionne, mais mon modèle de classes différentes, donc je pense qu'il y est quelque chose à elle..

Mise à JOUR 1.0:

J'ai compris, il a beaucoup à voir avec la @RequestBody paramètre.

Ce paramètre correspond à celui que vous êtes en poussant avec vos Ajax. Maintenant, j'ai besoin de ce paramètre pour correspondre à mon objet qui a exactement les attributs de je suis passant à travers avec l'Ajax. Quelque part j'ai fais une erreur, et je ne suis pas sûr de ce qu'est le droit chemin...

Si j'ai mis "@RequestBody Chaîne someString" il sera de retour les paramètres j'ai poussé avec ajax, mais je ne vais pas être en mesure d'accéder à cette info avec les getters parce que c'est une chaîne de caractères. J'ai donc besoin d'un objet à collecter ces valeurs!

  • Tout le monde déteste quand vous le nom des variables dans une autre langue que l'anglais. Ne pas le faire.
  • J'apprécie le commentaire, bien que je ne puisse faire quoi que ce soit, je suis de nommer les méthodes et les variables dans ma langue pour les besoins de la compréhension, c'est le sens commun. Je sais que cela peut être déroutant traiter ici, donc je vais probablement retaper la question.
InformationsquelleAutor JovanGacic | 2017-04-02