如何访问从 JQuery AJAX 调用发送的中间件中的变量 word
。
AJAX
....code
$.ajax({
url: "/getWords",
word: word, //value wanting to send!!!
success: function(result) {
var myJSON = result;
console.log(myJSON);
}
});
中间件:
app.get("/getWords", function(req, res, done) {
console.log("req.body = ", req.body); //undefined ??? Looking for 'word' value
});
req.body 记录未定义的 req.params 日志 {}。正文解析器已安装。
谢谢
更新: 这是我现在根据反馈编写的代码:
//script.js
$.ajax({
url: "/getWords",
data: {word: "value"},
processData: false,
dataType : "json",
contentType: "application/json; charset=utf-8",
processData: false,
success: function(result) {
var myJSON = result;
}
});
//server.js
const bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.get("/getWords", function(req, res) {
console.log("value = ", req.query);
});
});
不幸的是,在控制台中我得到 - value = {} 。我在这里做错了什么?
最佳答案
ajax()
方法可选参数“settings”没有有效的“word”选项。请使用 { data : { word : word} }
通过请求传递变量(请注意,它将被解释为查询字符串,请关闭 processData
标志) .
示例请求
$.ajax({
url: 'myurl',
data: {
myVar: myVal
},
success: (data,status,jqXHR) => {}
});
更新
除了 Nelles 的回答之外,如果您希望能够访问请求正文,您应该使用 app.post()
中间件(假设您想通过 POST 请求发送数据)+正确设置 ajax()
调用的 method
选项。
引用
关于node.js - 如何使用 jquery ajax 将变量发送到中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59744318/