我应该如何处理我网站上的混合内容警告?

我的服务器configuration为仅使用HTTPS; 这工作正常。

但是,当我访问该网站时,我在Firefox中(在URL栏旁边)看到这条消息:

Firefox正在阻止此页面上的内容
即使内容被阻止,大多数网站也能正常工作。

不安全的内容
本网站上一些未encryption的元素已被封锁。

该网站工作正常,我只是讨厌有这个信息,不知道这是什么意思。

有什么方法可以确定什么是被阻止? 我尝试closures网站上的某些function,但无法find造成这种情况的原因。

这只发生在Firefox。 Chrome浏览器不显示错误消息。


Firebug说:

Blocked loading mixed active content "http://jqueryapi.info/?getsrc=ok&ref=https%3A%2F%2Fexample.com%2F" 

这似乎是由JavaScript混淆造成的。 如果我将JavaScript代码更改为正常,这不会发生。 所以现在我想知道有没有办法绕过这个?

你问:“ 有什么方法可以确定什么是封锁? ”,答案是肯定的。

当然,最有效的方法来检查您的浏览器中出了什么问题是…直接要求浏览器:-)

最新版本的现代浏览器(如Firefox和Chromium / Chrome)包含一个“开发工具”,可以准确报告浏览器通过networking发送的HTTP请求,以及每个浏览器响应从远程web服务器返回(如果有的话)。

在Chrome / Chromium世界中,可以使用CTRL-SHIFT-I访问开发人员工具,如果您更喜欢菜单path,则可以使用“工具”=>“开发人员工具”

在firefox(至less在我的第33节)中,顺序是一样的。

一旦激活“开发工具”,您可以select“networking”选项卡。 之后,如果您将浏览器指向原始url,则浏览器将报告所有详细信息。

此外,我还build议检查“控制台”(在“开发人员工具”区域内select适当的“选项卡”),因为它可能包含许多有用的信息,至less当遇到一些问题时:-)


PS:对于浏览器报告的消息( 本网站上的一些未encryption的元素已被封锁 ),我敢打赌,浏览器正在抱怨,因为你正在访问一个受SSL保护的URL,并且从这个URL返回的HTML包含对标准HTTP访问的其他资源(CSS,图像,脚本等)的一些引用, 没有SSL保护 。 所以,浏览器不是通过networking发送清晰的上下文,而是决定“阻止”它们。

如果通过http加载任何资源(例如图像,脚本等),将出现此警告。 如果有任何表单发送到不安全(http)目的地,它也会出现。 但是,如果这个警告只出现在Firefox中,我将首先检查是否有任何Firefox插件或扩展引起的问题。 禁用所有扩展并重新加载页面。 您还会发现开发者控制台(F12)可能会告诉您哪些资源不安全地加载。 它在Chrome中,我不是很熟悉Firefox。