HTTP-Fehler 415 beim Senden einer POST-Anfrage mit JSON-Daten von HTML an den Java Rest-WebdienstJava

Java-Forum
Anonymous
 HTTP-Fehler 415 beim Senden einer POST-Anfrage mit JSON-Daten von HTML an den Java Rest-Webdienst

Post by Anonymous »

Ich versuche, die Daten aus dem HTML-Formular in index.html als JSON-Daten mit Javascript und Ajax an den Java REST-Webdienst zu senden. Ich habe alles versucht, was ich bisher online gefunden habe, und erhalte immer noch jedes Mal den HTTP-Fehler 415.
Ich kenne die Bedeutung dieses Fehlers, kann aber nicht herausfinden, wo ich falsch liege, da ich mit Javascript noch nicht so gut vertraut bin.
Hier ist der Code:
index.html

Code: Select all

div style="text-align:center">


Add to Your balance
Money amount


Select currency

EUR










(function() {
function toJSONString( form ) {
var obj = {};
var elements = form.querySelectorAll( "input, select" );
for( var i = 0; i < elements.length; ++i ) {
var element = elements[i];
var name = element.name;
var value = element.value;

if( name ) {
obj[ name ] = value;
}
}

return JSON.stringify( obj );
}

window.onload = function() {
var form = document.getElementById("test");
var output = document.getElementById("output");
form.onsubmit = function( e ) {
e.preventDefault();
var json = toJSONString( this );
console.log(json);
console.log("TEST");
$.ajax({
url: form.getAttribute( 'action' ),
headers: {
'Accept': 'application/json',
'Content-Type': "application/json; charset=utf-8"
},
type: 'POST',
data: json,
success: function(data) {
alert("data saved")
console.log("SUCCESS");
},
error: function() {
console.log("ERROR");
console.log(errorThrown);
}
})
};
}

})();


Und hier ist der REST-Dienst:

Code: Select all

@Path("/")
public class ServiceA {

@POST
@Path("/servicea")
//@Consumes(MediaType.APPLICATION_JSON)
public Response postRequest(String obj) {
String res = "hii";
return Response.status(200).entity(obj).build();
}
BEARBEITEN
Ich habe meinen Code bearbeitet ... jetzt funktioniert er. aber warum muss ich das Argument auf String anstelle von JSONObject setzen und @Consumes entfernen? In der Konsole erhalte ich diese Daten aus der Variablen, die ich in Ajax sende: {"Amount": "213", "Currency": "eur"} ... Ich sende also JSON, aber der Dienst funktioniert nur, wenn das Argument String ist.
ENDGÜLTIGE BEARBEITUNG
Ich konnte das Problem beheben, mir fehlte die Abhängigkeit für Jersey-JSON.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post