Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jqueryajax-post-to-express服务器获取未定义的数据_Javascript_Jquery_Ajax_Express - Fatal编程技术网

Javascript jqueryajax-post-to-express服务器获取未定义的数据

Javascript jqueryajax-post-to-express服务器获取未定义的数据,javascript,jquery,ajax,express,Javascript,Jquery,Ajax,Express,我正在尝试获取一个表单,以便在不重新加载页面的情况下向我的express app.js提交一些数据。我认为我的代码是正确的,但是当涉及到从ajax调用到服务器的代码时,我得到了一个未定义的数据变量 app.js:(删除了不相关的行) 进行ajax调用的jquery函数: $('#reserve form').on('submit', function(){ event.preventDefault(); var data = { name: $('#name'

我正在尝试获取一个表单,以便在不重新加载页面的情况下向我的express app.js提交一些数据。我认为我的代码是正确的,但是当涉及到从ajax调用到服务器的代码时,我得到了一个未定义的数据变量

app.js:(删除了不相关的行)

进行ajax调用的jquery函数:

$('#reserve form').on('submit', function(){

    event.preventDefault();
    var data = {

        name: $('#name').val()
    };
    console.log(data);
    $.ajax({
        url: 'http://localhost:3000/sendEmail',
        data: data,
        method: 'POST'
    }).then(function (response) {
      // Do stuff with the response, like add it to the page dynamically.
      $('body').append(response);
    }).catch(function (err){

        console.error(err);
    });
});

请注意my/sendmail app.post函数中的console.log()和jquery函数中的console.log()。jquery one记录正确的数据,而app.post one记录未定义的变量。。。我做错了什么?提前感谢

您的jQuery没有发布JSON,而是发送了一个JS对象。我敢打赌这是一个内容类型的问题。
您可能还需要查看
$(“#reserve form”).serialize()
来打包表单数据以便发送,而不是尝试手动创建对象

在app.js中,您没有发送响应。这就是为什么会得到未定义的输出。试试这个

app.post('/sendEmail', function (req, res) {
    console.log(req.body.data);
    res.jsonp({data: 'your data'});
});

希望这会对您有所帮助。

它不是console.log(res.body.data)而不是console.log(req.body.data)吗;不。。。更糟糕的是,req.body.data导致了一个未定义的数据变量,而res.body.data导致了一个500错误代码console.log(req.body)显示了什么?alexander,这就成功了!但为什么我只需要使用req.body而不需要使用req.body.data?非常感谢你
app.post('/sendEmail', function (req, res) {
    console.log(req.body.data);
    res.jsonp({data: 'your data'});
});