我在digitalOcean有一个域名为testDO
的前端应用程序。此域名具有SSL证书。因此所有请求来源都来自https://testDO.com
。
通过将war文件部署到beanstalk中,我在AWS中创建了一个后端服务器。它的名字是testAWS.us-east-2.elasticbeanstalk.com
当我直接从网址调用API时,例如http://testAWS.us-west-2.elasticbeanstalk.com/myAPI/getName
就可以了。当我从前端调用相同的API时,我会被阻止:混合内容。这是因为它的http而不是https?解决方法是什么?
是的,这是因为,您的HTTPS站点尝试通过HTTP访问内容,该内容被浏览器阻止。您需要在前端服务器上同时使用HTTPS或代理请求,并在那里终止SSL并将其转发到Beanstalk中的API服务器。
注意:由于前端和后端位于两个不同的环境中,因此优先使用HTTPS而不是代理方法来实现安全性。
您可以创建CloudFront分配并将其与https一起发送到http。您还需要在响应中启用CORS以访问跨域域请求。
客户端 - > CloudFront - >您的http API(使用CORS响应)。
希望能帮助到你。