Dojo在HTTPS站点上发出HTTP请求时遇到问题

时间:2015-08-05 22:18:32

标签: https dojo

我正在尝试使用名为“MGC Chatbox Evo”的vBulletin插件。这个插件使用Dojo库,但是我在通过HTTPS工作时遇到了一些麻烦。

在插件中,库被称为:

$js .= '<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js" data-dojo-config="parseOnLoad: true"></script>';

这会通过HTTPS加载特别好的功能。然而,这随后似乎试图加载更多的文件,我可以在插件的源文件中找到绝对没有引用(在Notepad ++中使用find)。我想知道是否有人知道如何通过HTTPS而不是HTTP强制执行这些请求,因为它们当前正被自动阻止。感谢。

http://i.imgur.com/gQfkzp6.png

1 个答案:

答案 0 :(得分:1)

您是否可以修改该脚本标记以加载Dojo 1.6.2而不是1.6.1?我想这可能会解决你的问题。

这就是原因。这来自1.6.1中未压缩的CDN版dojo.xd.js

dojo.registerModulePath("dojo", "http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo");
dojo.registerModulePath("dijit", "http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dijit");
dojo.registerModulePath("dojox", "http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojox");

然后这是1.6.2中的相同行:

dojo.registerModulePath("dojo", "//ajax.googleapis.com/ajax/libs/dojo/1.6.2/dojo");
dojo.registerModulePath("dijit", "//ajax.googleapis.com/ajax/libs/dojo/1.6.2/dijit");
dojo.registerModulePath("dojox", "//ajax.googleapis.com/ajax/libs/dojo/1.6.2/dojox");

这些路径指示Dojo在哪里加载通过dojo.require请求的其他模块。请注意,1.6.1中的URL硬编码为http,但1.6.2中的URL是协议相关的。