关于https页面使用ifream嵌套http页面问题解决
之前公司项目,部署的时候协议用的http,然后前几天,运维把协议换成了https的,当时也没仔细测试,觉得没什么问题,蓝后,昨天,产品部的人突然发现其中的某个播放视频的页面显示不出来了,报错信息:
接着上这个页面的部分代码:
就是这个页面用ifram嵌套了另一个项目的页面,另一个项目http和https都支持(猜测不指定的情况下,它默认会找http的),刚开始看到这个问题一脸懵,也不知道咋解决,然后,旁边的一个同事看到这个错误,悠悠的说了句,这是拼起来的页面,跨域问题了,不好办啊,小仙女遇到问题,习惯知难而退,既然出错还不是常规错,那怎么办啊,不然还是先改回来http吧,还是http安全啊,于是就又让运维改回了http,结果,莫名其妙的问题出现了,登陆有问题,点击登录按钮,不报错,没反应,并且四个人测试,两个是好使的,两个人是不好使的,明明没升级之前是好使的啊,怎么....挠头皮啊,痛苦啊,玄学啊,遂开始正视解决那个页面跨域问题:
1,测试,在本地也能使用https访问项目的步骤:https://blog.****.net/zdf1943/article/details/81940807
2,找到了一种办法,在需要跨域的页面,添加一行代码:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
问题轻轻松松解决,这个标签的作用,是强制将本页面的所有http请求升级为https请求
对于跨域等问题,了解的极少,有时间专门深入研究一下:
附一个同源策略表,所以上面遇到的问题也属于跨域问题咯~