опубликуйте результаты html формы в api как json - PullRequest
0 голосов
/ 23 ноября 2018

Я хочу отправить форму и отправить значения в API в формате json и сохранить ответ в переменной.Когда я пытаюсь сделать это, используя приведенный ниже код, я получаю сообщение «Внутренняя ошибка сервера».

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
    <script src="http://malsup.github.com/jquery.form.js"></script>
    <script>
        $('#myForm').ajaxForm({
            url : 'myurl.com', 
            dataType : 'json',
            success : function (response) {
                alert("The server says: " + response);
            }
        });
    </script>
</head>

<body>
    <form class="myForm" method="POST" action="myurl.com">
        <div class="form-group row">
            <label for="example-text-input" class="col-2 col-form-label">Season</label>
            <input class="form-control" type="text" id="season">
        </div>

        <div class="form-group row">
            <label for="example-number-input" class="col-2 col-form-label">Students</label>
            <input class="form-control" type="number" id="num_students">
        </div>

        <div class="form-group row">
            <label for="example-number-input" class="col-2 col-form-label">teachers</label>
            <input class="form-control" type="number" value="42" id="num_teachers">
        </div>

        <button type="submit" class="btn btn-primary">Submit</button>
    </form>
</body>
</html>

Параметры, которые принимает API - это «сезон», «num_teachers», «num_students».Как только он будет иметь все параметры, он отправит ответный результат обратно.Как я могу отправить результаты своей формы в API и получить ответ?

1 Ответ

0 голосов
/ 24 ноября 2018

Я не знаю, почему вы используете плагин jQuery для отправки формы в Ajax, совершенно бесполезно.

$('#myForm').on('submit', function() { // Fired listener when submit button is clicked.
  $.ajax({
    url: 'myurl.com',
    dataType : 'json', // Try text also, maybe the api donn't send result in json. Text always work.
    data: $('#myForm').serialize(); // The form to send.
    success : function (response) {// Get response on successful sever connection.
      console.log(response); // or alert
    }, error: function (err) { // Get error on failed connection to server.
      console.log(err); // or alert
    }
  }
});

Замените свою функцию этой.Удалите атрибут действия в вашем HTML-теге формы.Теперь вы обрабатываете ошибки и ответ от сервера.Это означает, что если сервер возвращает ошибку, она будет отображаться в вашей консоли, и вы сможете узнать проблему.Другое дело, вам действительно нужна эта старая версия jQuery, потому что сейчас мы находимся на версии 3.3.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...