【发布时间】:2020-03-22 07:36:14
【问题描述】:
我想通过 ajax 将数据发送到在 localhost 上运行的 Node.js 服务器。为了测试这一点,我想将文本类型的输入发送到服务器并在那里记录。 这是我的 Post-Function(通过单击按钮调用):
function answer(){
let data = {
name : $('#send').val()
};
console.log(data);
$.ajax({
type: 'POST',
url: 'http://localhost:3456/MyWebApp/Test',
dataType: 'text',
data: data.name,
success: console.log('post was successfull'),
error: function(textStatus, errorTrown){
console.log(textStatus + " " + errorTrown);
}
});
}
在我的服务器上,我尝试使用以下功能收集数据:
app.post('/MyWebApp/Test', function(request,response){
console.log(request.body.data);
});
app.listen(3456);
我的问题是,我的服务器上的值(在上面的 console.log 中)总是未定义的。 我已经尝试使用 dataType-Parameter json 而不是文本发送整个 json-Object,但随后我的服务器出现错误,试图读取未定义的属性值。我必须如何实现 app.post 函数,以使数据可读并使用它?
我希望能够理解我想要实现的目标以及我的问题是什么,我对 Node.js 或 Ajax 不太了解,但我仍将感谢任何帮助。
【问题讨论】:
-
将
data: data.name更改为data: data -
也许您没有正确使用您的
request。在app.post方法中尝试console.log(request),看看它输出了什么。 -
查看你的网络标签,你在发送什么?
-
应该是
console.log(req.body.name)
标签: javascript jquery node.js ajax