以下是我的情况:
我有一台Web服务器,客户端计算机和第三台运行某些侦听XMLHttpRequests程序的计算机。
客户端从客户端计算机访问Web服务器,进行一些更改,然后单击“保存”。此时,数据将被发送回Web服务器和第三台计算机。所有这些都是使用Javascript和XMLHttpRequest对象完成的。
Web服务器的帖子工作正常,但是第三台机器的帖子不起作用,因为它有不同的IP /域。
我该如何使这项工作? 客户端机器 - >第三台机器不起作用,因为它在不同的域上 Web服务器机器 - >由于防火墙问题,第三台机器无法正常工作
非常感谢任何想法!
答案 0 :(得分:3)
您遇到的是Same origin policy,而不是防火墙问题。
如果计算机共享顶级域名,您可以 set their document.domain properties to match :
两个网站共享一个共同的顶级 尽管域名可能会选择沟通 未通过“同一主机”检查 相互设定各自的 document.domain DOM属性 同样合格的右手片段 他们目前的主机名。
否则,您可能需要将第一个主机设置为将请求代理到其他主机。
答案 1 :(得分:3)
您可以在服务器上实施 CORS
(Cross-Origin Resource Sharing)。
主流桌面浏览器的当前版本已经支持了一段时间,Opera和Explorer 10是最后添加支持的版本。
我不确定此时移动浏览器对CORS的支持程度如何。
答案 2 :(得分:2)
您也可以使用iframe hack。由第二个域托管的iframe可以在由第一个域托管的页面中呈现,并且可以从父页面的上下文访问iframe的window object。
答案 3 :(得分:1)
如果数据不敏感,另一个选项(无疑是技术人员)是使用YQL。您也可以使用YQL & JSON-P来获取其他域中的数据。