Обработчики успеха и ошибок Ajax не работают с nodejs - PullRequest
0 голосов
/ 22 сентября 2019

По какой-то причине обработчики успеха и ошибок моего ajax-запроса не работают должным образом.

Мой сервер узлов работает правильно и дает правильные результаты, но все, что находится в разделе ошибок моего запроса ajax, выполняется независимо.

Я проверил другие сообщения, и они, кажется, делают то же самое, что и я.Я не могу понять, что происходит.

Мой код ajax:

$.ajax({
        url: path,
        method: 'POST',
        dataType: 'JSON',
        data: items,
        success: function(response)
        {

            alert('Tweety Logs sent successfully.')
        },
        error: function(err)
        {

            alert('Tweety Logs not sent.')
        }
});

Функция на моем сервере:

function log(req,res)
{
  var breed = req.body.breed;
  var list = req.body.logs;
  try {
    fs.appendFileSync("Logs/log.dat", JSON.stringify(breed) + "logs:\r\n");
    for(let i = 0; i < list.length; i++)
    {
      fs.appendFileSync("Logs/log.dat", JSON.stringify(list[i])  + "\r\n");
      console.log('Added to Logs/log.dat - ' + JSON.stringify(list[i]));
    }
    res.sendStatus(200);
  }
  catch (err) {
    console.log('Error writing to the file: ' + err.message)
    res.sendStatus(500);
  }
}

Вызывается бит ошибки ajaxкаждый раз, даже если это успешно.Есть идеи почему?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

Если вы добавите консольный журнал в код своего сервера, это не будет ответом json.Вам нужно добавить данные json в ваш файл res.send вместо console.log

и удалить console.logs

0 голосов
/ 22 сентября 2019

Некоторое время назад я использовал Ajax в последний раз, но вы можете попробовать axios или получить их, они значительно облегчат вашу жизнь.Axios лучше обрабатывает ошибки, используя блок catch.

Проверьте эту ссылку для получения дополнительной помощи и деталей.https://alligator.io/js/axios-vanilla-js/ https://alligator.io/js/fetch-api/

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