繁体   English   中英

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

[英]Why does Chrome remove port number for localhost:80?

我正从我的前端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删除了URL中的端口

在这里换了港口

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作为我的后端,为我的前端做反应框架,而cors版本是“cors”:“^ 2.8.4”

端口80是万维网(www)已经使用的默认端口。 是否需要专门使用此端口号(对于本地开发我猜)?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM