5

这是我的情况:

我有一台 Webserver 机器、Client 机器和第三台机器运行一些程序来监听 XMLHttpRequests。

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

发布到网络服务器工作正常,但是发布到第三台机器不起作用,因为它有不同的 IP/域。

我怎样才能使这项工作?客户端机器 -> 第三台机器不工作,因为它在不同的域 Webserver 机器上 -> 第三台机器不工作,因为防火墙问题

任何想法都非常感谢!

4

4 回答 4

3

您遇到的是同源策略,而不是防火墙问题。

如果机器共享一个顶级域,您可以将它们的 document.domain 属性设置为 match

共享同一个顶级域的两个站点可以通过相互将它们各自的 document.domain DOM 属性设置为其当前主机名的相同限定的右侧片段来选择通信,尽管“相同主机”检查失败。

否则,您可能需要设置您的第一台主机以将请求代理到另一台主机

于 2010-06-29T19:46:30.213 回答
3

您可以在您的服务器上实现CORS跨域资源共享)。

主要桌面浏览器的当前版本已经支持它一段时间,Opera 和 Explorer 10 是最后添加支持的版本。

不过,我不确定目前跨移动浏览器对 CORS 的支持有多广泛。

于 2012-03-11T11:42:17.107 回答
2

You could also use the iframe hack. An iframe hosted by the second domain can be rendered in a page hosted by the first domain, and the window object for the iframe will be accessible from the parent page's context.

于 2010-06-29T20:25:03.113 回答
1

如果数据不敏感,另一种选择(诚然有点技术含量)是使用YQL 。您也可以使用YQL 和 JSON-P从其他域获取数据。

于 2010-06-29T21:44:11.003 回答