node.js - Node / Express CORS POST 给出 504 和 403
问题描述
我正在尝试制作一个非常简单的服务器,我可以在本地运行它并使用我的 IP 从网络上的另一台服务器访问。
我从https://www.whatismyip.com/获得了我的 IP
它列出了 2 个地址 - 本地和 IPv4。当我从邮递员发送 POST 时,本地工作正常。我在终端中看到我的日志request from: chrome-extension://fdmmgi...
但是当我从网络上的另一台服务器发送 POST 时它不起作用 - 我在终端中看不到任何日志,并且我在另一台服务器上的日志显示403 Forbidden
IPv4 地址不适用于邮递员或服务器。邮递员说the response status was 0.
,另一台服务器的日志说504 gateway time-out
我应该使用哪个 IP 来通过另一台服务器的 POST 来解决这个问题?另外,我可以在本地服务器代码(如下)中进行哪些更改以使其正常工作?
const express = require('express');
const app = express();
const router = express.Router();
const port = 3000;
app.all('*', function(req, res, next) {
// allow any origin
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, POST');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
});
app.use('/', router);
router.get('/', (request, response) => {
response.json({message: 'Hello, welcome to my server'});
});
router.post('/api/my/endpoint', (request, response) => {
console.log('request from: ' + request.headers.origin);
// trying agian to force cors to work
response.setHeader('Access-Control-Allow-Origin', request.headers.origin);
response.json({message: 'hi, welcome to my server'});
});
app.listen(port, () => console.log(`Listening on port ${port}`));
解决方案
推荐阅读
- r - 查找一个值是否大于向量中所有先前值的函数
- postgresql - Postgresql 等效于 SQL Server CONTEXT_INFO
- laravel-5 - 迁移中的数组到字符串转换错误
- java - 无法使用 Docker 容器名称连接到 MySQL,但可以连接到 localhost
- list - 在 Perl 中,为什么在语句中添加“|| die”会导致它在标量上下文中求值?
- php - 使用 Eloquent (Laravel) 分组
- node.js - 从 npmjs 获取过时的 index.d.ts
- javascript - LayersControl.Overlay 上的状态更新变量复选框切换
- javascript - 为什么我不能在阵列上推送数据?
- node.js - 使用 gitlabapi 在 gitlab 中添加大量用户