目前我正在开发一个项目,我使用nodeJs作为后端,并且我已配置支持与每个源共享资源
但是在这里我面临一些问题,比如每当我从“http://example34”向我的API请求资源来共享资源时,它就可以毫无问题地共享资源,但如果我通过“https://example34”请求相同的资源' 它说无法共享资源,这是错误,我不知道为什么。
我尝试了一些事情,比如我认为这可能是一个问题,因为 SSL_TLS 证书我验证了由已知权威机构为客户端和服务器签名的 SSL-TLS,但没有任何结果,我希望共享两者的资源' http://example34' 以及 'https://exaple34'
编辑 --> 我注意到服务器是使用 http.createServer() 创建的 --> 这个服务器创建命令是否会导致我面临的问题,如果是,那么我该如何解决 http 和 https 的问题?
对于这个问题,正如我发布的那样,我正在使用 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
});
对我来说,经过这些更改后,这个错误得到了解决