У меня есть этот JavaScript, который должен послать JSON моего метод escreve
POST RESTПочему мой метод POST не может получить этот ajax?
$(document).ready(function() {
$("#idform").on('submit', function(e) {
e.preventDefault();
alert($("#idform").serialize());
$.ajax({
url : 'http://localhost:8080/DBRest/rest/escreve',
type : "POST", // type of action POST || GET
dataType : 'json', // data type
data : $("#idform").serialize() // post data || get data
})
});
});
это моя сторона сервера escreve
метод:
@POST
@Path("escreve")
@Consumes(MediaType.APPLICATION_JSON)
public void escreve(InputStream dado) throws IOException {
StringBuilder construtor = new StringBuilder();
try {
BufferedReader in = new BufferedReader(new InputStreamReader(dado));
String linha = null;
while ((linha = in.readLine()) != null) {
construtor.append(linha);
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(construtor.toString());
Pessoa pessoa = gson.fromJson(construtor.toString(), Pessoa.class);
Repo.escreve(pessoa);
}
К сожалению, я получил сообщение на Chrome F12 в:
jquery.min.js:4 POST http://localhost:8080/DBRest/rest/escreve 415 (Unsupported Media Type)
send @ jquery.min.js:4
ajax @ jquery.min.js:4
(anonymous function) @ index.html:20
dispatch @ jquery.min.js:3
q.handle @ jquery.min.js:3
С js alert($("#idform").serialize());
Я получил: nome=Mary&idade=12
, что явно не анализируется JSON. Я теперь мой метод escreve
работает, потому что я проверил его с классом Java, который правильно отправил объект JSON.
Так у вас есть метод, который принимает JSON , вы отправляете данные, которые, как вы знаете, не * json, и вы спрашиваете, почему это не работает? – f1sh
http://stackoverflow.com/questions/1184624/convert-form-data-to-javascript-object-with-jquery – 1252748
@ f1sh Я спрашиваю, как это можно сделать правильно. Очевидно, меня не интересует только окончательный ответ. У меня это уже есть. Если у вас есть какие-либо дополнительные знания, пожалуйста, отправьте ответ. В противном случае, просто вниз и подождите, пока кто-нибудь объяснит это. – GabrielRado