简单的jQuery代码工作正常,直到通过https://加载网站

我有一个简单的jQuery代码提交表单,隐藏/显示一些屏幕上的信息。 它testing时工作正常,直到通过https:/ /加载它在IE7中断。 它似乎完全打破,没有任何脚本有任何效果。 我也得到IE的警告,“有些元素是不安全的”。

有没有人有这种情况发生的经验? 或者更好,一个解决scheme! 我必须通过https加载页面作为信用卡付款页面。

前面的三个答案都提到了一个安全的“https”页面试图从“http”path包含脚本或其他资源(样式表,图像等)的问题…

我想添加到这些,并注意,如果你有一个情况下,可以通过http或https加载相同的网页,那么你可以创build“无协议”的url—协议将被认为是与当前页面相同。 请注意,只有在访问不同域中的资源时才需要这样做(并且只有当这些不同的域同时支持http和https时才需要这样做),因为显然,如果您要访问同一个域中的资源,则不需要以http: //所有…

例如,根据当前页面的访问方式,这三个资源中的每一个都将采用http或https:

<script src="//www.example.com/whatever.js" type="text/javascript"></script> <img src="//www.example.com/someimage.png" alt="whatever" /> <link href="//www.example.com/styles.css" rel="stylesheet" /> 

如果您通过https://提供页面,则每个资源链接也应使用https:// 。 密切注意,提防,小心

 <script type="text/javascript" src="http://.../jquery.js"></script> 

感谢您的所有input。 问题最终被追踪到Thickbox.js中提到的图像。

因为它有一个http://(不是https://)url,它导致了错误信息。 popup的安全消息对加载不安全的内容有“是”或“不是”,单击“是”是告诉浏览器根本不加载任何jQuery。

这真是一个棘手的问题,所以我想我会回答自己,希望能帮助其他人解决同样的问题。

如果客户端使用HTTPS来请求页面,那么页面应该通过HTTPS链接到所有媒体(图片,脚本,样式表)。

如果客户端使用HTTP来请求页面,那么你应该在你的响应中发送这个HTML片段:

 <head> <script type="text/javascript" src="http://my.domain.com/app/media/jquery.js" ></script> </head> 

如果客户端使用HTTPS来请求页面,那么您应该在响应中发送这个HTML片段:

 <head> <script type="text/javascript" src="https://my.domain.com/app/media/jquery.js" ></script> </head> 

不同之处在于,当客户端使用HTTPS请求页面时,服务器会发回一个链接到以https://开头的jquery脚本。

如果您使用code.jquery.com中的jquery,也可能会看到类似的行为

例如:

code.jquery.com没有有效的SSL。

这可能会导致其他脚本无法正常工作。

使用谷歌CDN,而不是从您自己的服务器加载jQuery

希望能帮助到你

我使用IE 11作为浏览器。

解决scheme:不要使用兼容模式。 工具 – >兼容性视图设置。

症状:

程序在http模式下工作正常。

浏览器在一行报告错误,声称标识符是预期的。

浏览器不会允许在jquery库文件上进行debugging。 文件没有显示在要debugging的文件列表中,如果通过开发者控制台日志中的错误消息访问,则可以在文件上设置断点,但断点被禁用。

浏览器清楚地显示文件已成功加载。

使用不同的浏览器时不会出现错误。

提示:我把testing程序剥离下来,加载jquery库文件和一个显示固定文本的div,所以没有任何我自己的代码出错了。 这大大简化了可能出错的清单。