首页 > 解决方案 > 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}`));

标签: node.jsmacosexpresspostcross-domain

解决方案



推荐阅读