从远程服务器调用JavaScript函数

时间:2011-03-22 10:12:44

标签: javascript same-origin-policy

我试图从另一台服务器(server2)调用某些服务器(server1)上的JavaScript函数,我收到了这个错误:

不安全的JavaScript尝试从包含网址https://server1/的网址访问包含网址https://server2/的框架。域,协议和端口必须匹配。

我使用JSP,Java,JavaScript和tomcat7,有什么办法可以解决这个问题吗?任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

是的,必须在您的javascript文件的标头中添加跨域规则,以允许从其他服务器进行访问。

否则,您的浏览器不允许您这样做。

您可以查看此问题的答案:XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin

应该告诉你该怎么做。

答案 1 :(得分:0)

查看easyXDM - 它提供了一项RPC功能,允许您调用Same Origin Policy内的方法。

查看其中一个演示here

答案 2 :(得分:0)

如上所述,您遵守同源策略,旨在保护用户。 谷歌有一个很好的记录:http://code.google.com/p/browsersec/wiki/Part2

有几种典型的方法可以解决这个问题:

  1. jquery有一个getJson或jsonp类型的函数。大多数其他js libs都有类似的东西。它们使用动态脚本标记,适用于来自其他域的GET请求。
  2. 在domain1上创建一个代理domain2的servlet - 允许不受限制的HTTP方法并使用XmlHTTPRequest。
  3. 我没试过http://easyxdm.net/wp/

    有一些改进,例如HTML5

    中的跨文档消息传递