我正在使用以下代码在通过HTTPS加载的网页上加载Disqus,如this answer中所述。
<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>
请注意,我已将embed.js的请求更改为https
而非http
,并且我已将?https
添加到请求的末尾我也认为应该强制使用HTTPS。
初始请求按计划通过HTTPS进行,但是它通过HTTP发出了一个辅助请求,Chrome is hating(我得到红色十字架挂锁图标)。
从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]
这是让Disqus在所有请求中使用ssl的正确方法,还是我错过了一步?
感谢。
答案 0 :(得分:6)
这似乎是Disqus本身的一个问题。我们在几个Drupal站点中使用相同的方法通过SSL工作得很好,但是最近都有一个Disqus开始在IE和Chrome中引起SSL警告,如你所描述的那样。
我做了一些挖掘,我发现在embed.js中定义并在thread.js中调用的DISQUS.useSSL函数更新了一些URL(特别是[“disqus_url”,“realtime_url”,“uploads_url”] )在Disqus json设置对象中,如果在设置中找到https,则用https替换其URL中的http。 juggler_url没有得到相同的处理,因此没有通过SSL加载更新。我不确定juggler的目的是什么,但似乎该URL(http://juggler.services.disqus.com/)在任何情况下都不会通过SSL加载,所以即使它的url被更改为https,它仍然行不通。
所以也许Disqus最近做了一个改变,因为我们之前有这个工作吗?我们正在接受它们,因为这似乎不是我们最终的配置问题......
<强>更新强>
Apaprently Disqus推出了一项不支持SSL的新服务。这就是生成不安全加载的额外脚本,从而触发安全警告的原因。我们为我们的特定帐户禁用了这项新服务(他们没有告诉我们名称),现在SSL再次按预期工作。因此,解决方案是让他们让您的帐户符合SSL标准,并且应该处理它。
答案 1 :(得分:2)
找到这篇解决方案的文章: http://help.disqus.com/customer/portal/articles/542119-can-disqus-be-loaded-via-https-
基本上不可能(还)使用Disquss 2012,但是关闭它并更改嵌入src以便它使用https://并添加?https param:
dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js?https';
答案 2 :(得分:1)
过去几个月我一直没有遇到这个问题,并且被迫完全禁用了Disqus。最初,我联系了Disqus,看看他们是否可以使开关禁用非SSl兼容功能,并且这种情况有效,但混合内容问题仍然存在。
似乎发生的事情是,尽管Disqus强迫其count.js javascript的https版本,但由于某种原因,count.js仍然重定向到mediacdn.disqus.com而不是securecdn.disqus.com。如果在插件编辑器中手动附加?https以强制重定向到securecdn.disqus.com,则问题会在第一次调用CDN时消失,但在随后使用查询字符串调用CDN时会消失?https会添加到计数中。 js调用,重定向只是恢复到mediacdn.disqus.com。我已经尝试了很多次。
关于这个问题的烦人的事情是我网站上创建混合内容通知的SSL页面甚至没有评论部分。所以Disqus正在页面上不必要地加载它的javascript。
我喜欢Disqus,但令我难以置信的是,他们不会通过允许用户有选择地禁用javascript或通过实现适用于所有情况的安全cdn版本来解决此问题。我希望他们能解决这个问题。
他们还告诉我,2012年的Disqus不支持HTTPS(虽然它将来会有用)。
答案 3 :(得分:0)
最近,Disqus启动了一项不支持SSL的新服务。这就是生成extra脚本的原因,这些脚本被不安全地加载,从而触发安全警告。