Итак, вы в основном спрашиваете, как получить данные JSON с помощью запроса POST?
Вместо
$.getJSON('servleturl', function(data) {
alert(data);
});
используйте
$.post('servleturl', function(data) {
alert(data);
});
Когда вы позволяетесервлет делает response.setContentType("application/json")
, тогда data
уже в формате JSON.
Однако, прочитав ваш вопрос и комментарии, я думаю, вы в основном спрашиваете какотправить форму POST, используя jQuery .По сути, это не имеет ничего общего с JSON (хотя сервлет может возвращать ответ JSON, если это необходимо).
Предполагая следующую форму
<form id="formid" action="servleturl" method="post">
<input type="text" name="foo" />
<input type="text" name="bar" />
<input type="submit" />
</form>
, вот как вы можете "отрегулировать" его (сделатьво время подготовки документа!)
$('#formid').submit(function() {
$form = $(this);
$.post($form.attr('action'), $form.serialize(), function(data) {
// Do something with response. Display message? Redirect to other page?
alert(data);
});
});
Другой пример также см. этот ответ .
Существуют плагины, которые делают это более красиво, например, jQueryФорма .Тогда это так же просто, как
$('#formid').ajaxForm(function(data) {
// Do something with response. Display message? Redirect to other page?
alert(data);
});
, и он также поддерживает <input type="file">
элементы без особых проблем.