Https 网站 访问 Http资源
Posted 流星蝴蝶没有剑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Https 网站 访问 Http资源相关的知识,希望对你有一定的参考价值。
Https 网站访问 Http 资源
如果在https的页面需要加载http的资源,那么浏览器就会报错或者提示,为了促进用户升级协议,同时不需要网站开发者劳师动众地把整个网站的http资源改成https资源,chrome增加一个Upgrade-Insecure-Requests: 1头,告诉服务器,浏览器可以处理https协议,然后服务器返回Content-Security-Policy: upgrade-insecure-requests头,或者通过meta头设置,告诉浏览器,对于页面的http资源,请求时可以自动升级到https,比如在https的网站上有一张图片url是http://localhost/1.jpg,浏览器请求时会把url变成https://localhost/1.jpg,所以这里首先需要服务器在端有相对应的资源。但是有一种情况例外,那就是https网站中a标签对应的外站资源不会被升级,比如a网站有一张b网站的链接,那么这个链接对应的url不会升级。
在head标签中添加:
<meta content="upgrade-insecure-requests" http-equiv="Content-Security-Policy">
为了统一使用,封装到js中使用
// 动态添加meta资源https
if (window.location.protocol.split(":")[0] == 'https')
var meta = document.createElement('meta');
meta.content = "upgrade-insecure-requests";
meta.setAttribute('http-equiv', "Content-Security-Policy");
document.getElementsByTagName('head')[0].appendChild(meta);
以上是关于Https 网站 访问 Http资源的主要内容,如果未能解决你的问题,请参考以下文章