我正在尝试实现从客户端的表单输入中获取数据并将其发送到服务器以由我的Nodejs后端处理的功能。
我的服务器端功能正常运行,但我不确定如何通过$.ajax
{{1}将数据从客户端表单发送到后端服务器请求提交表单。
到目前为止我的代码:
服务器端功能:
GET
客户端功能:
app.get('/id', function(req,res) {
var query = "SELECT * FROM Control";
connection.query(query, function() {
console.log(query);
});
});
答案 0 :(得分:2)
您想要使用POST请求而不是GET请求。这样做将允许您发送数据以及您可以在服务器端的查询中使用的请求,并将响应发送回您的客户端。像这样:
客户端
function select() {
var id = $('#My-ID-Input').val();
$.ajax({
type: 'post',
url: '/id',
data : {
id : id
},
success: function(data) {
var id = data.id;
$('#My-ID-Input').val(id);
},
error: function(err) {
console.log(err);
}
});
}
服务器端
app.post('/id', function(req, res) {
var data = req.body;
var id = data.id;
var query = "SELECT * FROM Control WHERE id=" + id;
connection.query(query, function(error, result) {
console.log(result);
res.send(result);
});
});
<强> GOTCHA!强>
您需要确保拥有
express
bodyparser
将中间件实施到您的服务器中以确保发送的数据 因为post请求的主体被解析为对象文字 在服务器端。在您的服务器模块/文件中,您需要包含以下代码,并确保您npm install body-parser
:
var bodyParser = require('body-parser');
app.use( bodyParser.json() );