16

我在 IE9 中有一个Greasemonkey-for-IE脚本,它正在导入 jQuery。但是在安全页面上它不起作用。

我越来越:

SEC7111: HTTPS security is compromised by http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

失败的代码是:

var script = document.createElement("script");
script.setAttribute("src", 
    "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");

我怎样才能使这项工作?该脚本不会在 Firefox 中引起问题。

4

5 回答 5

38

您可以通过使用这样的方案相对 URL 来消除更简单的代码的问题:

var script = document.createElement("script");
script.setAttribute("src", 
   "//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");

这将http://http://页面和页面https://上使用https://......解决问题的更简单的方法。

于 2010-10-11T11:48:10.860 回答
17

大概:为您的安全页面使用https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js(或不信任第三方 CDN(既值得信赖又不受影响) )

于 2010-10-11T11:43:55.633 回答
5

错误消息是 IE 警告混合内容(安全页面上的 HTTP 和 HTTPS 资源)的新方式。是一篇相关的 MSDN 博客文章。

使用

https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js

似乎也能正常工作,尽管我在Libraries API 概述中看不到对它的官方引用。

于 2010-10-11T11:45:45.580 回答
2

问题是当您处于安全模式(即HTTPS)时,页面加载的所有文件也必须是HTTPS。您在这里制作的 JQuery 包括 HTTP。

您需要检测页面是处于 HTTP 模式还是 HTTPS 模式(使用window.location.protocol()),并调整 JQuery 包含的 URL 以适应。(它所需要的只是'http'之后的附加's')

于 2010-10-11T11:48:26.210 回答
0

您正在使用 https 连接,并且想要访问 http 连接。

于 2010-10-11T11:44:38.487 回答