Expressjs在POST请求后不发送响应

Posted

技术标签:

【中文标题】Expressjs在POST请求后不发送响应【英文标题】:Expressjs Not Sending Response After POST Request 【发布时间】:2018-09-16 13:27:46 【问题描述】:

我在快递方面有这个功能:

// Register user login
exports.register_user = function(req, res) 
    var portalID = req.body.portalID;
    var companyName = req.body.companyName;
    var password = req.body.password;
    var password2 = req.body.password2;

    var salt = bcrypt.genSaltSync(12);
    var hash = bcrypt.hashSync(password, salt);
    password = hash;

    var params = 
        TableName: "HouseAccounts",
        Item: 
            "portalID": portalID,
            "companyName": companyName,
            "points": 0,
            "password": password,
        
    
    res.sendStatus(200);

这个在前端获取:

function register() 
  fetch("MyURL/register", 
    method: "POST",
    headers: 
        "Content-Type": "application/json"
    ,
    body: JSON.stringify(
      "portalID": document.getElementById("portal-id").value,
      "companyName": document.getElementById("company-name").value,
      "password": document.getElementById("password").value,
      "password2": document.getElementById("password2").value
    )
  ).then(function(response)console.log(response));

在快递方面,我可以接收通过 POST 发送的 JSON 并对这些数据进行处理。但是,在我的前端,我没有收到快递方面的回复。连接超时,状态为(failed),控制台出现错误Uncaught (in promise) TypeError: Failed to fetch

【问题讨论】:

这可能之前已经解决了。你试过这个吗? ***.com/questions/42754388/… @JackJefferies 是的,我已经尝试记录 response.json() 但我根本没有收到任何来自 api 调用的返回。 因为你什么也没发送。只是一个200 响应头。没有从服务器端发送数据 服务器日志中有任何内容吗?没有错误?当您发送res.json(...) 作为测试时会发生什么? @F***Te 想通了 【参考方案1】:

好的,问题是我正在使用 AWS Cloud9 并且我的公共 IP 以访问 API 在重新启动实例时发生了更改,因此请求根本没有到达服务器端。

【讨论】:

以上是关于Expressjs在POST请求后不发送响应的主要内容,如果未能解决你的问题,请参考以下文章

如何允许无限制的发布请求 expressjs

从 Angular/NodeJS/ExpressJS 向 3rd 方 URL 的 POST 请求

iframe发送post请求

expressjs不返回任何响应给html

Axios Post 200 响应后不返回数据

模拟http响应头