【问题标题】:Multiple POST request issues in Node JSNode JS 中的多个 POST 请求问题
【发布时间】:2020-05-14 13:37:19
【问题描述】:

所以我一直在构建一个 Web 应用程序并且我已经实现了一个 POST 请求来请求将一些 JSON 数据发送到 Node JS 服务器但是当我现在尝试为不同的数据集添加第二个帖子时HTML 表单我收到一个无法 POST /x/ 页面,但是,如果我将先前的 POST URL 用于第一组数据,则数据将正确发送。发送多个 POST 请求是否有问题?我在下面添加了一些代码,因此您可以查看我的工作 /foo/ JSON 数据请求与我的非工作 /basket/ HTML 表单请求。提前非常感谢。

工作代码:

    app.post("/foo/", function(req, res) {

    var myObject = req.body;

    console.log(myObject);

    for(var i = 0; i < myObject.length; i++){
        var parsed = JSON.parse(myObject[i])
        console.log(parsed.Item.ProductNo);
        console.log(parsed.Item.Quantity);
    }

    var transporter = nodemailer.createTransport({
  service: '*****',
  auth: {
    user: '*****',
    pass: '*****'
  }
});

请求无效:

    app.post("/basket/"), function(req, res){
    var body = req.body;
    console.log(body);
}

工作 foo 请求 JS:

function sendBasket(){

    fetch('/foo/', {
  method: 'post',
  headers: {
    'Accept': 'application/json, text/plain, */*',
    'Content-Type': 'application/json'
  },
  body: localStorage.getItem('basket')
}).then(res=>res.json())
  .then(res => console.log(res));

    console.log('Sending' + basketList + 'To email');
    //console.log(localStorage.getItem('basket'));
    //$.post("/foo/", localStorage.getItem('basket'), function(temp) {
    // temp === "I am done";    
//});


}

HTML 表单请求无效:

form#customerForm(method = 'post' action = '/basket/')
            input(class='input' id='email' name='email' type='email' value='')
            ul#listForBasket.listForBasket
            input#butSubmit(type = 'submit' value = 'submit')

【问题讨论】:

    标签: javascript node.js json forms post


    【解决方案1】:

    Answer:我仍然有点不确定我是如何修复它的,但问题现在已经解决了,我认为这是由于 HTML 表单中的 Action 属性使用不正确以及 JS 中的结构错误的提取请求造成的文件和结构不正确的 server.js 文件。非常感谢 u/fastidious-magician 在诊断我的问题方面提供了很大帮助。这是我在 JS 中的最后一个工作的第二个获取请求:

    function sendData(e){
        e.preventDefault();
        const email = document.getElementById("email").value;
        const bodyToSubmit = { "email": email }
        console.log(JSON.stringify(bodyToSubmit))
        fetch('/foo2/', {
              method: 'post',
              headers: {
                'Accept': 'application/json, text/plain, */*',
                'Content-Type': 'application/json'
                  },
              body: JSON.stringify(bodyToSubmit)
                }).then(res=>res.json())
                  .then(res => console.log(res));
    }
    

    【讨论】:

      猜你喜欢
      • 2019-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-19
      • 2019-03-05
      • 2021-05-08
      • 1970-01-01
      相关资源
      最近更新 更多