…此内容也应通过HTTPS加载

美好的一天。

网站https://mult-privet.com/

在我的Chrome控制台中,我看到了以下错误:

[blocked] The page at 'https://yandex.st/share/ya-share-cnt.html?url= https%3A%2F%2Fmult-privet.com%2F&services=yaru, vkontakte,facebook,twitter,odnoklassniki,moimir' was loaded over HTTPS, but ran insecure content from 'http://connect.odnoklassniki.ru/dk?st.cmd=extOneClickLike&uid=odklocs0& ref=https%3A%2F%2Fmult-privet.com%2F': this content should also be loaded over HTTPS. 

为什么还要通过HTTPS加载此URI?

为什么我会收到此错误,如何删除它?

在Chrome地址栏的右侧,单击盾牌图标,然后单击“加载不安全脚本”。 完成!

在此处输入图像描述

为什么还要通过HTTPS加载此内容?

因为:

  • 如果您将不安全的内容注入到其他安全页面中,则可以拦截,替换不安全的内容,从而使安全内容不安全
  • 浏览器不能老实地继续告诉用户该页面的部分内容是不安全的

告诉我,为什么我得到这个错误

您正在将没有SSL内容的HTTP加载到带有SSL页面的HTTP中。

以及如何删除这个?

对页面上的所有内容使用HTTPS。

为什么会出现此错误

昆汀的答案很好地解释了这一点。 我想澄清一下,你收到混合内容错误 。

如何解决此错误

虽然Quentin的答案提供了最理想的解决方案,但有时使用协议相对URL解决混合内容错误会更方便,其中http[s]?:前缀从URL中删除。 例如,改变这个:

 http://connect.odnoklassniki.ru/dk?st.cmd=extOneClickLike&uid=odklocs0& ref=https%3A%2F%2Fmult-privet.com%2F 

对此:

 //connect.odnoklassniki.ru/dk?st.cmd=extOneClickLike&uid=odklocs0& ref=https%3A%2F%2Fmult-privet.com%2F 

删除http:前缀。 它将让浏览器确定协议。 在上面的示例中使用协议相对URL时,如果您在SSL加密页面上,浏览器将访问https://connect.odnoklassniki … URL,并且在非SSL页面上,它将访问http://connect.odnoklassniki … URL,假设两个协议都适用于URL。

但是,使用协议相对URL存在一些缺陷 ,例如确保URL后面的服务器能够同时提供httphttps协议。 此SOpost解决了使用协议相对URL的更多原因。