Javascript &引用;“访问控制允许来源”不允许;在内部网络和Windows服务器之间

Javascript &引用;“访问控制允许来源”不允许;在内部网络和Windows服务器之间,javascript,xmlhttprequest,Javascript,Xmlhttprequest,我们的网络上有2个内部(intranet)Windows服务器,仅对本地网络可用。在服务器1上安装了Spark,我们可以在其中查询Jabber信息,如: http://server1/plugins/presence/status?jid=username@jabbersrv&type=text 在服务器2上安装了Spiceworks,我编写了一个插件来查询Jabber状态,如下所示: xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET

我们的网络上有2个内部(intranet)Windows服务器,仅对本地网络可用。在
服务器1上安装了Spark,我们可以在其中查询Jabber信息,如:

http://server1/plugins/presence/status?jid=username@jabbersrv&type=text
服务器2上安装了Spiceworks,我编写了一个插件来查询Jabber状态,如下所示:

xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", "http://server1/plugins/presence/status?jid=username@jabbersrv&type=text", false );
xmlHttp.send( null );
statusStr = xmlHttp.responseText;
但此代码(在服务器2上)返回错误:

XMLHttpRequest cannot load http://server1/plugins/presence/status?jid=username@jabbersrv&type=text. Origin https://server2 is not allowed by Access-Control-Allow-Origin.
为什么这不起作用?我有一些VB.net代码可以在相同的环境中实现这一功能:

Dim jbrStatus As New System.Net.WebClient
Dim userStatus As String = jbrStatus.DownloadString("http://server1/plugins/presence/status?jid=username@jabbersrv&type=text")
虽然Openfire在服务器1上运行,但它们都没有运行Apache或我所知道的那种。由于这两台服务器是内部的(在同一个域上),它们是否应该天生不相互信任?在Windows域和Windows服务器上实现此功能的最佳方法是什么


我尝试将server2域服务器添加为server1上的本地管理员,但没有成功。

无论它们是否在同一网络上。如果它们有不同的域名,默认情况下XMLHttpRequests将无法工作。例如,您需要服务器发回某些头。请注意,这只适用于较新的浏览器。

它们是否在同一网络上并不重要。如果它们有不同的域名,默认情况下XMLHttpRequests将无法工作。例如,您需要服务器发回某些头。请注意,这只适用于较新的浏览器。

这与同源策略有关

该策略允许脚本在源于同一服务器的页面上运行 站点访问彼此的方法和属性,没有特定的 限制,但阻止访问大多数方法和属性 在不同网站的页面之间


server1/server2被视为不同的域,即使在同一网络上。

这与同源策略有关

该策略允许脚本在源于同一服务器的页面上运行 站点访问彼此的方法和属性,没有特定的 限制,但阻止访问大多数方法和属性 在不同网站的页面之间


server1/server2被视为不同的域,即使在同一个网络上。

它们都在同一个域上,是否相关?整个域名必须匹配(而不仅仅是最后两部分)。对不起,我指的是Windows域。这没什么区别。它们都在同一个域上,有关系吗?整个域名必须匹配(不仅仅是最后两部分)。对不起,我指的是Windows域。那没什么区别。