Ошибка HTTP 415 при отправке запроса POST с данными JSON из HTML в веб-службу Java RestJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ошибка HTTP 415 при отправке запроса POST с данными JSON из HTML в веб-службу Java Rest

Сообщение Anonymous »

Я пытаюсь отправить данные из HTML-формы внутри index.html в веб-службу Java REST в виде данных JSON, используя javascript и ajax. Я пробовал все, что нашел в Интернете, и все равно каждый раз получаю ошибку HTTP 415.
Я знаю значение этой ошибки, но не могу понять, в чем я ошибаюсь, поскольку еще не очень хорошо знаком с javascript.
Вот код:
index.html

Код: Выделить всё

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

})();


А вот и REST-сервис:

Код: Выделить всё

@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();
}
ИЗМЕНИТЬ
Я отредактировал свой код... теперь он работает. но зачем мне устанавливать аргумент String вместо JSONObject и удалять @Consumes? В консоли я получаю эти данные из переменной, которую отправляю в ajax: {"Amount":"213","Currency":"eur"} ... Итак, я отправляю JSON, но сервис работает только в том случае, если аргументом является строка.
ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ
Мне удалось решить проблему, у меня отсутствовала зависимость для jersey-json.

Подробнее здесь: https://stackoverflow.com/questions/547 ... ava-rest-w
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»