今天早上,当我将Firefox浏览器升级到最新版本(从22升级到23)时,我的后台办公室(网站)的一些关键方面停止了工作。

查看Firebug日志,报告了以下错误:

Blocked loading mixed active content "http://code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css"
Blocked loading mixed active content "http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"`

在其他错误中,由上述两个中的后者未加载引起。

上述问题是什么意思?我该如何解决?


当前回答

我只是通过在头部添加以下代码来修复这个问题:

    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

其他回答

在https协议上强制重定向,你也可以在根文件夹的。htaccess中添加这个指令

RewriteEngine on

RewriteCond %{REQUEST_SCHEME} =http

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

当我的网站从http到https时,我也遇到了同样的问题。我们已经添加了规则,所有请求重定向http到https。

你需要添加站点间请求重定向规则,但你必须删除外部js/css的重定向规则。

由于安全性,它给出了误差。 为此,请在网站url中使用“https”而不是“http”。

例如:

   "https://code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css"
   "https://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"

这意味着你从https调用http。你可以在你的脚本标签中使用src="//url.to/script.js",它会自动检测。

或者你可以在你的src中使用https,即使你将它发布到一个http页面。这将避免评论中提到的潜在问题。

我也有同样的问题,因为我买了一个CSS模板,它通过http://whatever.js.com/javascript.js抓取了一个外部javascript文件。我在浏览器里打开了那个页面,然后把它改成了https://whatever……使用SSL,它工作,所以在我的HTML javascript标签,我只是改变了URL使用https而不是http,它工作。