2010-04-21 30 views
5

我在运行JBoss的公司Intranet上有一台服务器。我想从我的机器(也在Intranet上)将API调用发送到此服务器,并使用JQuery获取生成的XML响应。相同的源策略如何适用于IP地址

我阅读Wikipedia的条目,但我很困惑这是如何适用于我的情况,因为我们的机器只有IP地址,而不是域名。

  • 服务器URL:10.2.200.3:8001/serviceroot/service
  • 客户端IP地址:10.2.201.217

我的问题是:

  1. 据我说d这些是不同的领域,对吧?所以我必须使用代理向服务器发出JQuery.ajax调用
  2. 如果我想避免(2)做,我可以在服务器上安装Apache,并在服务器上安装JS代码形式的页面吗?但那么JS将从10.2.200.3开始,而服务器将在10.2.200.3:8001。根据政策,这些被视为不同的领域吗?

谢谢!

+0

去年我花了一个小时左右的时间想清楚这一点,我认为我没有得到很好的答案。我真的不需要一个,所以我放弃了:我 – Pointy 2010-04-21 22:08:43

+0

尖尖的,我完全理解你!我拉着头发解决了这个简单的问题两天。 – recipriversexclusion 2010-04-21 22:49:40

回答

2
  1. 是的。

  2. 是的,不同的端口意味着不同的来源。这是大多数浏览器在JS中完成的一段时间,但在HTML5 draft中有明确的描述,XMLHttpRequest draft引用了它。

如果A和B具有不相同的端口部件,返回false。

+0

谢谢Bobince!还有一个问题:如果我的JBoss服务器也在10.2.200.3:8001上为JS提供服务,或者应该使用常用的代理服务器解决方案,那么您会建议哪一种? – recipriversexclusion 2010-04-21 22:52:34

+0

取决于您的网络附加组件对服务的整体性,我认为,您是否希望它们成为同一项目的有效组成部分。无论哪种方式,我都不愿意在生产服务器上运行开发AJAX脚本,如果是这样的话。 – bobince 2010-04-21 23:02:51

2

如果端口或地址不同,它们是不同的域。如果您需要从实际上是另一台服务器访问信息,则实际上有两种选择。一种是编写某种反向代理来将您的请求从同一个源服务器传递到辅助服务器。

或者,如果您在控制次要目标,并且在提供直接访问时没有安全风险,则可以考虑调整辅助服务器以发出JSON-P响应。