Как позвонить по экспресс-маршруту в Аякс? - PullRequest
0 голосов
/ 28 апреля 2019

У меня возникают проблемы при вызове экспресс-маршрута в моем приложении Node.js из Ajax при отправке формы.

Мой маршрут выглядит следующим образом:

router.post("/user", function(req, res) {
    console.log("FORM DATA: " + JSON.stringify(req.body));
    res.send('done!');
});

Мой вызов Ajaxвыглядит следующим образом:

$("#add-report-form").submit(function(e) {
  e.preventDefault();

  $.ajax({
     type: "POST",
     uri: "/user",
     contentType: "application/json",
     data: JSON.parse(JSON.stringify($("#add-report-form").serializeArray())),
     }).done(function(data) {
        alert("ajax call done!");
     });
  });

В моем app.js есть app.use(bodyParser.json());.

. Когда я отправляю свою форму, console.log в моем маршруте не запускается, и яне могу понять почему, кажется, что маршрут в не вызывается вообще.Любая помощь будет отличной!

Моя форма выглядит следующим образом:

<div class="modal-body">
   <form id="add-report-form">
      <div class="row">
        <div class="col">
           <label for="report-select">Report</label>
           <select class="form-control" id="report-select" name="report">
             <option>Select Report</option>
           </select>
        </div>
       </div>

       <div class="row modal-row">
         <div class="col">
           <label for="interval-select">Report Interval</label>
             <select class="form-control" id="interval-select" name="interval">
               <option>Select Interval</option>
             </select>
          </div>

          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            <button type="submit" id="add-submit" class="btn btn-primary save-changes">Save changes</button>
          </div>
      </form>
   </div>

РЕДАКТИРОВАТЬ:

Я также попытался выполнить Ajax для события нажатия кнопки, новсе равно не повезло, всплывает предупреждение, но маршрут по-прежнему не вызывается.

$("#add-submit").on("click", function(e) {
    alert("this is the form submission");

    e.preventDefault();

    $.ajax({
        type: "POST",
        uri: "/user",
        contentType: "application/json",
        // data: JSON.parse(JSON.stringify($("#add-report-form").serializeArray())),
        data: JSON.stringify({data: "test"}),
    }).done(function(data) {
        alert("ajax call done!");
    });
});

1 Ответ

1 голос
/ 28 апреля 2019

Возможно, проблема в опечатке. Попробуйте 'url' вместо 'uri':

$.ajax({
    type: "POST",
    url: "/user",
    contentType: "application/json",
    // data: JSON.parse(JSON.stringify($("#add-report-form").serializeArray())),
    data: JSON.stringify({data: "test"}),
}).done(function(data) {
    alert("ajax call done!");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...