@zhuravlev125

Как отослать ответ клиенту с сервера?

Добрый день, пытаюсь отослать ответ клиенту с сервера node.js, и получить его через ajax. в документации по express написано, "если нужно ответить с данными то испольуйте res.send() или res.json()." оправляю ответ через res.send()
exports.add = function (req, res, next) {
    if(req.body.input_project) {
        var newTask = new task();
        newTask.head.head_task = req.body.input_project;
        newTask.head.userID = req.user._id;
        newTask.save(function (err) {
            if (err)
                return next(err);
            res.status(204).send(newTask.id);
        });
    }else{
        return next();
    }
};

получаю ответ так
$.ajax({
            type: 'POST',
            url: '/TODOList',
            data: params,
            success: function(data,req,res) {
                console.log(data); //undenfined
                addProject.call($target);
            }
        })

Подскажите что не так или как правильно обрабатывать ответ? насчет dataType,читал что ajax сам поймет что пришло, но так же пробовал указывать text, результат такой же - undenfined
  • Вопрос задан
  • 1040 просмотров
Решения вопроса 1
potapchino
@potapchino
undenfined потому что вы отсылаете 204 код
204 No Content — сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения © wikipedia

res.status(204).send(newTask.id);

попробуйте так:
res.send(newTask.id);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
1) поверьте что приходит обратно, есть ли вообще ответ от сервера(смотреть консоль браузера)
2) проверить complete вместо success
3) проверить что вообще выполняется скрипт на стороне сервера. И что выводит(возможно ошибку).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы