node.js - 如何使用 jquery ajax 将变量发送到中间件

标签 node.js ajax express jquery-ajaxq

如何访问从 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 选项。

引用

  1. JQuery ajax() 方法 reference
  2. 表达 post() 方法 reference
  3. GET 方法 reference在 MDN 上

关于node.js - 如何使用 jquery ajax 将变量发送到中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59744318/

相关文章:

javascript - JQuery Ajax 是如何工作的?

angularjs - 我如何开始使用 MEAN.IO?

node.js - node-gd 的复制功能无法识别

c++ - npm安装pomelo错误VC++ 2010?

javascript - 如何在浏览器中使用 npm 模块?甚至可以在本地(PC)中使用它们?

javascript - Ajax 在 </body> 之前尽快请求,还是在文档准备好时?

node.js - Nginx 无法正确代理 Nodejs

javascript - 多次添加jquery事件

node.js - 在 Node.js 上的 Express POST 路由中定义/使用 Promise

node.js - 将 MEAN 堆栈应用程序部署到 Heroku 时未加载任何文件?