前言:
今天解决了一个大问题,这个问题困扰了我两个多星期。一定要记录下,为遇到此问题的同学提供思路。
问题描述:
我做了个资源服务器,用来保存图片和视频的,在本地测试没有问题,在生产环境中回显时就会报错:

报错信息如下:Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure plugin resource '<URL>'. This request has been blocked; the content must be served over HTTPS
原因是:浏览器的安全策略,在https的请求里会将http的访问block掉。
解决方式:
1网上的几种方式:
相对协议
对于同时支持HTTPS和HTTP的资源,引用的时候要把引用资源的URL里的协议头去掉,浏览器会自动根据当前是HTTPS还是HTTP来给资源URL补上协议头的,可以达到无缝切换。
(没有成功,原因是我的http资源服务器只支持http请求,不支持https,这种方式成功的前提是必须两种方式都支持)
iframe方式
使用iframe的方式引入HTTP资

本文详细记录了解决HTTPS页面加载HTTP资源时浏览器报错问题的过程。问题在于浏览器安全策略阻止了HTTPS页面请求HTTP内容。尝试了相对协议、iframe、meta标签升级请求等方法未果。最终通过在生产环境部署Nginx,将HTTPS请求转发到HTTP资源服务器,并在资源服务器上再用Nginx转发至静态资源,成功实现了回显且避免了安全问题。
最低0.47元/天 解锁文章
1064

被折叠的 条评论
为什么被折叠?



