【发布时间】:2019-12-22 07:08:27
【问题描述】:
我有两个 nodejs 文件。一个从 AWS EC2 实例发送一个发布请求(使用 axios),一个在我的 PC 上接收它(使用 express)。出于某种原因,我的 PC nodejs 服务器没有收到发布请求。
我的接收器有这个代码:
app.post('/', function (req, res) {
console.log(req.body)
res.end("Request received!")
}
没有任何记录。
代码可能不是问题:在所有其他情况下,接收者记录请求正文,发送者记录响应,接收服务器正确处理它(将其放入 mongodb)。
它起作用的情况是:
- 从我的 PC 发送,在我的 PC 中接收
- 从 AWS 发送,在 AWS 中接收(不同的实例)
- 从我的 PC 发送,在 AWS 中接收
我认为它可能被两端之一阻止,所以我使用安全组并打开 AWS 实例上的所有端口(传入和传出),然后我在计算机上的防火墙上设置了打开的规则所需的端口,它仍然无法正常工作。
我还在 axios 请求中添加了这些标头:
const headers = {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "X-Requested-With",
"Content-Type":"application/json"
}
axios.post('http://(myip):3001', {arr:inf}, {headers:header}).then((res)=>{...
但它仍然不起作用。有什么建议吗?
编辑:在我发送请求后 20 秒左右,发送它的节点服务器超时,返回 ETIMEDOUT
【问题讨论】:
标签: node.js amazon-web-services http post axios