如何使用前端ajax通过post方法发送的node.js在服务器端检索数据?

安全新星

我最近开始用 express 框架学习 node.js 并偶然发现了一个问题。

我正在尝试一个简单的查询搜索网络应用程序,我想传递一段数据(一个名为 all 的布尔值)

从前端纯javascript通过ajax到服务器端,但是当前代码

我现在写的,似乎我的数据没有传递到服务器端,

我种植的3个console.log都返回{}。

我在这里缺少什么概念?我究竟做错了什么?

如果需要任何其他信息,请告诉我,谢谢。

前端js

window.onload=function(){
console.log("window loaded");
const xhr = new XMLHttpRequest();
xhr.open("POST","http://127.0.0.1:3000/search", true);
xhr.onreadystatechange = function(){
    if(xhr.readyState === 4 && xhr.status==200){
        // code later to be implemented
    }
}
let searchConditions = new SearchConditions(true);
console.log('data='+JSON.stringify(searchConditions));
xhr.send('data='+JSON.stringify(searchConditions));
}

class SearchConditions{
    constructor(all) {
        this.all = all;
    }
}

后端 node.js

// only partial code

const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());

app.post('/search', (req, res) => {
    console.log(req.body);
    console.log(req.query);
    console.log(req.params);
});

我的浏览器日志

在此处输入图片说明

我的后台日志

在此处输入图片说明

克里斯·皮

因为您发送了无效数据:

xhr.send('data='+JSON.stringify(searchConditions));

JSON 对象没有变量声明。你的服务器得到的是:

'data = {"all": true }'

这甚至不是有效的变量声明。你的服务器应该得到的是:

{"all": true}

尝试发送没有变量声明的纯 JSON 对象,并将“Content-Type”-header 设置为 json:

xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.send(JSON.stringify(searchConditions));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从服务器端的jQuery Ajax检索“数据”?

如何使用Node.js从服务器端的AJAX POST函数接收数据?

检索数据服务器端并使用Next.js保存在上下文中

无法通过Ajax调用在服务器端检索json数据

(服务器端)如何从MarkLogic检索数据并一次分页

如何在服务器端从Firebase数据库检索最后创建的对象

JS,如何选择服务器端数据表的所有行数据

在服务器端使用Node JS解析HTML

使用node.js实现服务器端

使用node.js调试服务器端

jQuery ajax post不将数据发送到服务器端(使用PHP)

Nuxt.js使用nuxtServerInit和Vuex在服务器端加载数据

如何从createServerRender在服务器端注入数据?

如何在 html 模板 (ASP.NET) 中的 Javascript 饼图中使用 AJAX 方法显示从客户端检索的动态服务器端数据

数据表服务器端-使用HTML

使用异步数据获取的服务器端渲染

从服务器端使用 Laravel/Lumen 插入数据

使用哪个,会话,Cookie,服务器端数据?

Node.js Express服务器端结构

Node.js服务器端调试

服务器端模板的node.js

在Node.js服务器端运行传单

如何在 next.js 中使用来自客户端的数据执行服务器端代码

发送服务器端 Google Analytics 数据而不发送服务器位置

Node.JS:从服务器端内存与服务器端文件提供文件

如何在服务器端检索文件,使用 ajax 为节点/快递应用程序发送

无法使用REST API控制器在服务器端检索url参数

如何从服务器端访问通过 Jquery.getJSON 发送的数据?

Ajax在服务器端的对应