使用jQuery创建$ .post请求时,我的数据未定义

时间:2016-01-08 07:52:59

标签: javascript jquery post

我正在尝试制作一个简单的帖子请求,但由于某种原因,我发送的数据将作为未定义返回。我已经检查了控制台,以确保在发出请求之前数据存在,并且它就在那里。如果你看下面,var $description从一个简单的html输入字段中取值。数据是文本,确实存在,正如我所说。为什么警报会返回'undefined'

$('#addTodo').click(function (event) {

            $('#success').hide();
            $('#failure').hide();

            $description = $('#todoDescription').val();

            $.post('/todos', {description: $description})
                .done(function(data) {

                    alert( "Data Loaded: " + data.description);

            });

        });

这是在服务器上处理请求的方式:

app.post('/todos', function (req, res) {
    var body = req.body;

    console.log('description: ' + body.description);
    res.json(body);

});

2 个答案:

答案 0 :(得分:0)

您的数据未定义,请检查您从服务器返回的内容。您可以在firebug或任何其他浏览器开发人员工具中看到它。另外,调用console.log(data)并直接在控制台中查看数据。

请再次检查,服务器中存在“描述”,它可能是错误的。像“desrciption”或类似的东西

答案 1 :(得分:0)

作为开始,而不是做

alert( "Data Loaded: " + data.description);

你应该试试

alert( "Data Loaded: " + data);

这里是在访问数据内部的任何内容之前从服务器打印输出。

并且不要忘记,在访问数据内的属性

之前将其转换为JSON

还要确保(在从服务器发送之前),您正在从服务器发送适当的数据