Chrome为什么要删除localhost:80的端口号?

时间:2019-04-04 14:54:34

标签: node.js google-chrome cors localhost port

我正在从前端React应用程序发出请求,并使用localhost:80在服务器上运行它。在浏览器中查看请求和标头时,Chrome会自动删除导致CORS错误的端口号。 Chrome为什么会删除此端口号?在这种情况下,最佳做法是什么?我只是将端口从80更改为8080,就解决了这个问题。

我已将所有类型的HTTP请求的标头设置为Access-Control-Allow-Origin,但这似乎无法解决问题。这也使我相信请求标头上缺少端口是问题的根本原因(这就是为什么我将端口从80更改为8080的原因。)

app.get('*', (req, res) => {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); // If needed
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); // If needed
    res.setHeader('Access-Control-Allow-Credentials', true);
}

此处无法使用端口

app.listen(80, err => {
  if (err) {
    return console.error(err);
  }
  console.log(

      =====================================================
      -> Server (${chalk.bgBlue('Hot reload')})  (running) on ${chalk.green(
      'localhost',
    )}:${chalk.green('80')}
      =====================================================
    ,
  );

^^此端口无法正常工作,Chrome删除了网址中的端口

更改了端口

app.listen(8080, err => {
  if (err) {
    return console.error(err);
  }
  console.log(

      =====================================================
      -> Server (${chalk.bgBlue('Hot reload')})  (running) on ${chalk.green(
      'localhost',
    )}:${chalk.green('8080')}
      =====================================================
    ,
  );

^^这个正在运行,chrome在URL中留下了端口

我希望CORS允许请求通过,即使没有指定端口,但都没有发生。我正在运行一个node.js服务器,后端使用graphql,前端使用了react框架,并且cors版本是“ cors”:“ ^ 2.8.4”

1 个答案:

答案 0 :(得分:0)

端口80是万维网(www)已使用的默认端口。是否有理由需要专门使用此端口号(我猜是为了本地开发)?

相关问题