加载openSocial小工具时拒绝访问

时间:2013-02-22 11:22:57

标签: javascript opensocial

我有三台服务器:

服务器A:主应用程序主机

服务器B:另一个在主应用程序中以openScoial Gadget打开的应用程序的主机

服务器C:服务器B上应用程序的OpenSocial规范文件的主机

现在,我访问服务器A上的应用程序,但是我收到错误,说某些javaScript文件函数拒绝访问。

似乎有些跨域问题,欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

您是否对小工具使用任何类型的身份验证?为什么xml在与应用程序不同的服务器上?它们也在不同的域上吗?你用什么方法来加载javascript?您使用哪个OpenSocial Container实现?你使用的是锁定域吗?到目前为止你尝试了什么?

我可以给你一些一般的建议/信息,但至少不回答上述问题,我无法准确理解你的问题是什么。

OpenSocial小工具在iframe中呈现,而他们的域由OpenSocial容器选择渲染它们,它们几乎从不(我不知道)在小工具xml的域上呈现。通常,此域将只是父页面/ OpenSocial容器的域,除非启用了锁定域,在这种情况下,小工具将在单独的唯一域上呈现,以防止它从父页面访问任何内容。

跨域策略阻止xhr请求,这就是为什么你需要使用gadgets.io.makeRequest来处理你通常用xhr做的任何事情,但makeRequest需要某种身份验证(通常是oauth),因为这基本上涉及OpenSocial容器代理小工具服务器中的内容(在您的示例中为服务器的C和B)。仍然可以使用不受交叉原始策略影响的JSONP加载javascript / data。