面对服务器端的cors问题(已关闭)

问题描述 投票:0回答:1

目前我正在开发一个项目,我使用nodeJs作为后端,并且我已配置支持与每个源共享资源

  • 从“cors”导入cors;
  • app.use(cors());

但是在这里我面临一些问题,比如每当我从“http://example34”向我的API请求资源来共享资源时,它就可以毫无问题地共享资源,但如果我通过“https://example34”请求相同的资源' 它说无法共享资源,这是错误,我不知道为什么。

我尝试了一些事情,比如我认为这可能是一个问题,因为 SSL_TLS 证书我验证了由已知权威机构为客户端和服务器签名的 SSL-TLS,但没有任何结果,我希望共享两者的资源' http://example34' 以及 'https://exaple34'

编辑 --> 我注意到服务器是使用 http.createServer() 创建的 --> 这个服务器创建命令是否会导致我面临的问题,如果是,那么我该如何解决 http 和 https 的问题?

node.js cors
1个回答
0
投票

对于这个问题,正如我发布的那样,我正在使用 http.createaserver() 创建服务器,因此默认情况下,浏览器不允许 https 从服务器获取资源,如果我们使用 https.createServer() 那么它将允许 http 和 https 从服务器获取资源,所以我们需要做的是使用 https.createServer()

创建我们的服务器

注意 --> 我们需要来自已知权威机构的 ssl-tls 证书和密钥(或者我们可以自己生成用于开发过程,但对于生产,建议仅使用由已知权威机构签名的证书)来创建 https 服务器 我有证书,我用它来阅读它

const httpsOptions = {

      key: fs.readFileSync('key.pem'),

      cert: fs.readFileSync('cert.pem')
  }

后跟-->

const httpsServer = https.createServer(httpsOptions, app);

const httpsPort = config.server.port  // --> port for your https server

httpsServer.listen(httpsPort, () => {

    // msg that you want to log

});

对我来说,经过这些更改后,这个错误得到了解决

© www.soinside.com 2019 - 2024. All rights reserved.