我在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?什么是解决方法?
答案 0 :(得分:1)
是的,这是因为,您的HTTPS站点尝试通过HTTP访问内容,该内容被浏览器阻止。您需要在前端服务器上同时使用HTTPS或代理请求,并在那里终止SSL并将其转发到Beanstalk中的API服务器。
注意:由于前端和后端位于两个不同的环境中,因此为了安全起见,最好同时使用HTTPS而不是代理方法。
答案 1 :(得分:0)
您可以创建CloudFront分配并将其与https一起发送到http。您还需要在响应中启用CORS以访问跨域域请求。
客户 - > CloudFront - >您的http API(使用CORS响应)。
希望它有所帮助。
答案 2 :(得分:0)
您需要使用您的域设置 AWS Elastic Beanstalk 环境,或者可以将HTTPS
与自签名证书一起用于开发和测试。
您可以在AWS S3中使用上传前端,在AWS静态网页中,端点为http
,因此您不会遇到混合内容问题。