我正在使用 get 方法并尝试使用 jQuery ajax 调用将数据发送到我的
nodejs
服务器。
这是我发送数据到
node
的代码:
$(document).ready(function() {
usid();
function usid(med) {
console.log("I am In");
var f = "my new name";
$.ajax({
crossDomain: true,
url:"http://localhost:8080/listUsers",
method:"GET",
data: { med: med, f: f },
success : function(data, status) {
console.log("send");
}
})
}
})
在我的 Node js 服务器中,我尝试使用以下代码获取此数据:
var express = require('express');
var bodyParser = require('body-parser');
const path = require("path");
var cons = require('consolidate');
var cors = require('cors');
const jsdom = require('jsdom')
const dom = new jsdom.JSDOM("")
const params = require('params');
const jquery = require('jquery')(dom.window)
var app = express();
app.use(cors())
app.engine('html', cons.swig)
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html');
app.use(bodyParser.urlencoded({extended:false}));
app.use(express.static(path.join(__dirname, "www")));
app.get('/listUsers', function (req, res) {
res.render('try');
var f = (req.body.f);
console.log("hello" + f);
})
var server = app.listen(8080, function () {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})
但是在我的控制台中我收到“未定义”错误。
你能告诉我我在这里错过了什么吗?
GET 请求没有正文 (req.body)。您可以将请求更改为 POST,然后您将拥有一个正文,或者您可以使用 queryString。这是一个示例https://nodejs.org/en/knowledge/HTTP/clients/how-to-access-query-string-parameters/
$.ajax({
crossDomain: true,
url:"http://localhost:8080/listUsers?med=" + med + "&f=" + f,
method:"GET",
success:function(data,status){
console.log("send");
}
})
然后在服务器上
app.get('/listUsers', function (req, res) {
var f = (req.query.f);
console.log("hello" + f);
})