当我尝试使用 IBM Social Business ToolKit for IBM Connections 构建 OpenSocial Gadget 时,我遇到了 Access-Control-Allow-Origin 错误。
我有 3 台服务器参与此小工具:
- 连接:将托管小工具的 IBM Connections 4.0 服务器
- IBMSBT:托管 Social Business Toolkit 脚本和应用程序的服务器
- JESSE_API:我的应用服务器托管小工具将使用的 API
小工具 xml 由 CONNECTIONS 从 JESSE_API 加载。小工具的视图加载脚本并调用 JESSE_API。我想使用 Social Business Toolkit 来访问 Connections 的各个部分,因此小工具视图也会从 IBMSBT 加载这些组件。
我目前只是对此进行原型设计——我能够仅使用 Connections 4.0 API 来完成这项工作,但宁愿使用 SBT 库。
开始时,我只是将“获取我的社区 - 主窗口”片段放入我的小工具视图中,并包含以下脚本:
<script type="text/javascript">
var djConfig = {
parseOnLoad: true
};
</script>
<script src="//IBMSBT/sbt.dojo180/dojo/dojo.js"></script>
<script src="//IBMSBT/sbt.sample.web/library?ver=1.8.0"></script>
重新加载小工具会在控制台中出现以下错误:
XMLHttpRequest cannot load http://IBMSBT/sbt.sample.web/service/proxy/connections/http/CONNECTIONS/communities/service/atom/communities/my?ps=5
由于我的小工具在 CONNECTIONS 服务器上运行,因此我不需要代理。我没有看到立即禁用此端点代理的方法,因此我只是在 Endpoint.js 中的第 160 行之前设置了一个断点,其中执行以下代码:
if(this.proxy) {
args.url = this.proxy.rewriteUrl(args.url,this.proxyPath);
}
当断点命中时,我设置 this.proxy = null 导致代理不被使用并且社区信息正确返回。
我的问题是我应该以不同的方式执行此操作,还是应该添加一种方法来绕过给定我当前使用的结构的代理的使用?