【问题标题】:Send POST JSON Data and Receive With Node.js (NO BODYPARSER)使用 Node.js 发送 POST JSON 数据并接收(无 BODYPARSER)
【发布时间】:2020-04-10 12:55:18
【问题描述】:

我很沮丧,因为我无法从 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>

【问题讨论】:

    标签: html node.js json send


    【解决方案1】:

    在 Web 浏览器的 Javascript 中,您需要将其作为原始 XMLHttpRequest 发送:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

    其他可能性是 jQuery 的 $.ajax 或者可能是新的 fetch API。

    【讨论】:

      【解决方案2】:

      根据我使用 node js 的经验,我相信你必须简单地 res.send 并删除 return 语句。

      希望这会有所帮助。

      【讨论】:

      • 我想我已经尝试过了……你能给我举个例子吗?
      • 对于新版本的 express,我认为需要 body 解析器才能访问 req.body
      猜你喜欢
      • 2017-05-31
      • 2012-01-20
      • 2014-07-10
      • 1970-01-01
      • 1970-01-01
      • 2014-11-28
      • 2012-01-30
      • 1970-01-01
      • 2015-11-05
      相关资源
      最近更新 更多