我有三台服务器:
服务器 A:主应用程序主机
服务器 B:另一个应用程序的主机,该应用程序在主应用程序中作为 openScoial 小工具打开
服务器 C:服务器 B 上应用程序的 OpenSocial 规范文件的主机
现在,我访问服务器 A 上的应用程序,但我收到错误消息,提示某些 JavaScript 文件功能拒绝访问。
似乎是一些跨域问题,欢迎任何帮助。
我有三台服务器:
服务器 A:主应用程序主机
服务器 B:另一个应用程序的主机,该应用程序在主应用程序中作为 openScoial 小工具打开
服务器 C:服务器 B 上应用程序的 OpenSocial 规范文件的主机
现在,我访问服务器 A 上的应用程序,但我收到错误消息,提示某些 JavaScript 文件功能拒绝访问。
似乎是一些跨域问题,欢迎任何帮助。
您是否对您的小工具使用任何类型的身份验证?为什么xml与应用程序在不同的服务器上?他们也在不同的域上吗?您使用什么方法来加载 javascript?您使用的是哪个 OpenSocial Container 实现?您是否使用锁定域?你试过什么了?
我可以给你一些一般性的建议/信息,但至少没有回答上述问题,我无法准确理解你的问题是什么。
OpenSocial 小工具在 iframe 内呈现,并且它们的域由呈现它们的 OpenSocial 容器选择,它们几乎从不(我知道没有任何情况)呈现在小工具 xml 的域上。此域通常只是父页面/OpenSocial 容器的域,除非启用了锁定域,在这种情况下,小工具将呈现在单独的唯一域上,以防止它访问父页面中的任何内容。
跨域策略阻止 xhr 请求,这就是为什么您需要将 gadgets.io.makeRequest 用于通常使用 xhr 执行的任何操作,但 makeRequest 需要某种身份验证(通常是 oauth),因为这基本上涉及 OpenSocial 容器代理来自小工具的服务器(在您的示例中为服务器的 C 和 B)。仍然可以使用不受跨源策略影响的 JSONP 加载 javascript / 数据。