我正在使用以下代码在通过HTTPS加载的页面上加载Disqus,如本答案所示.
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = 'our-shortname';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js?https';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
Run Code Online (Sandbox Code Playgroud)
请注意,我已将embed.js的请求更改为https而不是http,并且我已添加?https到请求的末尾,我认为应该强制使用HTTPS.
初始请求按计划通过HTTPS进行,但是它通过HTTP发出了一个辅助请求,Chrome很讨厌(我得到红色十字架挂锁图标).
来自Chrome控制台:
The page at https://our-website.com/blog-post-name ran insecure content from http://juggler.services.disqus.com/event.js?thread=635675380&forum=our-shortname...[long query string]
Run Code Online (Sandbox Code Playgroud)
这是让Disqus在所有请求中使用ssl的正确方法,还是我错过了一步?
谢谢.
这似乎是Disqus本身的一个问题.我们在几个Drupal网站上使用相同的方法通过SSL工作得很好,但是最近有两个版本已经开始在IE和Chrome中引发SSL警告,正如您所描述的那样.
我做了一些挖掘,我发现在embed.js中定义并在thread.js中调用的DISQUS.useSSL函数更新了一些URL(特别是["disqus_url","realtime_url","uploads_url"])如果在设置中找到https,则通过用https替换其URL中的http来对json设置对象.juggler_url没有得到相同的处理,因此没有通过SSL加载更新.我不确定juggler的目的是什么,但似乎该URL(http://juggler.services.disqus.com/)在任何情况下都不会通过SSL加载,所以即使它的url被更改为https,它仍然行不通.
所以也许Disqus最近发生了变化,因为我们之前有这个工作吗?我们正在接受它们,因为这似乎不是我们最终的配置问题......
更新:
Apaprently Disqus推出了一项不支持SSL的新服务.这就是生成不安全加载的额外脚本,从而触发安全警告的原因.我们为我们的特定帐户禁用了这项新服务(他们没有告诉我们名称),现在SSL再次按预期工作.因此,解决方案是让他们让您的帐户符合SSL标准,并且应该处理它.
| 归档时间: |
|
| 查看次数: |
5203 次 |
| 最近记录: |