html - 使用 Node.js 发送 POST JSON 数据并接收(无 BODYPARSER)
问题描述
我很沮丧,因为我无法从 HTML 发送或从 Node.js JSON 数据接收。我想我快要解决了,但我已经厌倦了几个小时的尝试。有人帮助我吗?
如下代码所示,在我的 VSCODE 中,响应者为 null (req.body = null?)。
当我从 Insomnia 尝试时,没关系。当我从 HTML 表单尝试时,失败了。* 我可以使用 BodyParser,但是为什么从 Insomnia 发送而从 HTML Form 发送却不行?
//routes.js routes.post('/go', (req, res) => { console.log(req.body) return res.json({ "Response": req.body }) })
<!DOCTYPE html> <html> <head> <title>API Correios</title> </head> <body> <form id="FrmQuery" action="http://localhost:3333/go" method="POST" enctype="application/json"> <label for="sCepOrigem">Cep Origem</label><br> <input type="text" name="sCepOrigem" id="sCepOrigem"><br><br><br> <input type="text" id="jsonData"><br><br> <button id="send" type="button">Enviar</button> </form> <script> document.querySelector('#send').addEventListener('click', (event) => { let sCepOrigem = document.querySelector('#sCepOrigem') var obj = { "sCepOrigem": sCepOrigem.value, }; var myJSON = JSON.stringify(obj); document.querySelector('#jsonData').value = myJSON document.querySelector('#FrmQuery').submit() }) </script> </body> </html>
解决方案
在 Web 浏览器的 Javascript 中,您需要将其作为原始 XMLHttpRequest 发送: https ://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
其他可能性是 jQuery$.ajax
或者新的 fetch API。
推荐阅读
- java - 集成测试 Given/When/The Java
- qt - NMAKE 静态链接错误
- python-2.7 - 使用 Appium 和 Python 在多个设备上并行运行
- python - 为 GPflow 模型预计算张量流张量
- android - 在 Linux 主机上使用 dex2oat 编译 APK
- bash - awk + 打印匹配前后的行
- excel - 具有包含数组的自定义类型的 VBA 字典
- javascript - Angular:检测整个应用程序中的用户点击
- elasticsearch - ElasticSearch:设置 search_analyzer 时必须设置字段分析器
- html - 如何显示缩小的 html 画布