Javascript jqueryajax-post-to-express服务器获取未定义的数据
我正在尝试获取一个表单,以便在不重新加载页面的情况下向我的express app.js提交一些数据。我认为我的代码是正确的,但是当涉及到从ajax调用到服务器的代码时,我得到了一个未定义的数据变量 app.js:(删除了不相关的行) 进行ajax调用的jquery函数: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'
$('#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'});
});