Ссылка JSON-ответа на POST данных формы с помощью jQuery и плагина Form - PullRequest
0 голосов
/ 07 октября 2009

У меня проблемы с пониманием того, как использовать jQuery и его плагин Form для доступа к данным, возвращаемым после операции HTTP.

Например, я хотел бы отправлять данные в форме из браузера, обрабатывать данные на сервере, возвращать ответ сервера (в JSON) в браузер и отображать информацию об этом ответе пользователю в предупреждении. - без переписывания формы.

Я думал, что следующий код jQuery сделает это:

$(document).ready(function() {
    $('#ajaxFormSubmit').bind('click', function(event) {
        $('#data_entry_form').ajaxSubmit({
            url: "data_entry_ajax",
            dataType: "json",
            success: function(data) {
                alert('Success');
                alert(data.save_status);
            }
        });
    });
});

Сервер возвращает следующее в объекте JSON:

{'save_status': 'OK', 'id_number': 2}

Но вместо отображения двух предупреждений над формой и введенными пользователем данными браузер стирает форму и отображает ответ JSON.

Я думал, что значение "success" в опциях, переданных ajaxSubmit, автоматически передавало ответ, полученный от сервера. Я пробовал различные варианты передачи аргументов в тело функции (ссылаясь на data, не передавая его, ссылаясь на responseText с передачей и не передавая ничего внутри), но они тоже не работают.

Я посмотрел на «jQuery In Action», чтобы понять, как получить доступ к ответу на объект xhr и функцию .ajax (), но это тоже не помогло.

1 Ответ

2 голосов
/ 07 октября 2009

Попробуйте использовать jQuery $ .post ()

<script>
// ...
$('#ajaxFormSubmit').bind('click', function(event) {
  $.post(
    'data_entry_ajax',
    $('#data_entry_form').serialize(),
    function(data) {
      alert('Success');
      alert(data.save_status);
    },
    'json'
  );
});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...