跨域XMLHttprequest

时间:2010-06-29 19:37:57

标签: javascript xmlhttprequest cross-domain access-denied cors

以下是我的情况:

我有一台Web服务器,客户端计算机和第三台运行某些侦听XMLHttpRequests程序的计算机。

客户端从客户端计算机访问Web服务器,进行一些更改,然后单击“保存”。此时,数据将被发送回Web服务器和第三台计算机。所有这些都是使用Javascript和XMLHttpRequest对象完成的。

Web服务器的帖子工作正常,但是第三台机器的帖子不起作用,因为它有不同的IP /域。

我该如何使这项工作? 客户端机器 - >第三台机器不起作用,因为它在不同的域上 Web服务器机器 - >由于防火墙问题,第三台机器无法正常工作

非常感谢任何想法!

4 个答案:

答案 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来获取其他域中的数据。