4 Stimmen

JSON plus Spring MVC 3.2 Fehler 415 (Nicht unterstützter Medientyp)

Was habe ich falsch gemacht? Ich versuche Spring MVC und JSON zu verwenden. Wenn ich versuche, meinen Code zu debuggen, sehe ich, dass javascript funktioniert, aber der Controller nicht. Im Browser erhalte ich den Fehler 415 Unsupported Media Type.

Skript:

$(document).ready(function() {
  $('#newSmartphoneForm').submit(function(event) {

      var producer = $('#producer').val();
      var model = $('#model').val();
      var price = $('#price').val();
      var json = { "producer" : producer, "model" : model, "price": price};

    $.ajax({
        url: $("#newSmartphoneForm").attr( "action"),
        data: JSON.stringify(json),
        type: "POST",

        beforeSend: function(xhr) {
            xhr.setRequestHeader("Accept", "application/json");
            xhr.setRequestHeader("Content-Type", "application/json");
        },
        success: function(smartphone) {
            var respContent = "";

            respContent += "Smartphone wurde erstellt: [";
            respContent += smartphone.producer + " : ";
            respContent += smartphone.model + " : " ;
            respContent += smartphone.price + "]";

            $("#sPhoneFromResponse").html(respContent);         
        }
    });

    event.preventDefault();
  });

});  

Controller:

 @RequestMapping(value="/create", method=RequestMethod.POST, 
        produces = MediaType.APPLICATION_JSON_VALUE,
            consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public Smartphone createSmartphone(@RequestBody Smartphone smartphone) {
    return smartphoneService.create(smartphone);
}

5voto

Alexey Punkte 2494

Es könnte passieren, weil Jackson zur Laufzeit nicht auf Ihrem Klassenpfad ist.

Die Fehlermeldung besagt, dass der Server aus irgendeinem Grund Ihre JSON-Anfrage nicht verarbeiten kann. JSON wird mit einem sogenannten Nachrichtenumwandler in ein Java-Objekt umgewandelt. Wenn Sie in Ihrer Spring XML-Konfiguration haben (oder Java-Konfiguration aktiviert haben), wird der JSON-Nachrichtenumwandler automatisch registriert. Wenn nicht, müssen Sie ihn registrieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X