跨域XMLHttprequest

问题描述 投票:5回答:4

这是我的处境:

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

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

发布到Web服务器的功能正常,但是发布到第三台计算机的功能不起作用,因为它具有不同的IP /域。

我该如何进行这项工作?客户端计算机->第三台计算机不起作用,因为它在不同的域中Web服务器计算机->由于防火墙问题,第三台计算机不起作用

任何想法都将不胜感激!

javascript xmlhttprequest cross-domain access-denied
4个回答
3
投票

您遇到的是Same origin policy,而不是防火墙问题。

如果计算机共享顶级域,则可以set their document.domain properties to match

[两个站点共享一个共同的顶级尽管未通过“相同主机”检查相互设置各自的document.domain的DOM属性相同的合格右手片段他们当前的主机名。

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


3
投票

您可以在服务器上实现CORSCORS)。

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

不过目前尚不确定移动浏览器对CORS的支持程度。


2
投票

您也可以使用Cross-Origin Resource Sharing。可以在由第一个域托管的页面中呈现由第二个域托管的iframe,并且可以从父页面的上下文访问该iframe的iframe hack


1
投票

[另一种选择(当然有点技巧)是,如果数据不敏感,请使用window object。您也可以使用YQL来从其他域中获取数据。

© www.soinside.com 2019 - 2024. All rights reserved.