【问题标题】:Cross-domain calls from a webbrowser来自网络浏览器的跨域调用
【发布时间】:2010-07-20 18:18:45
【问题描述】:

我想从网站执行跨域 http 请求。我有哪些选择?

Javascript 已退出,因为大多数浏览器不允许跨域调用。通常解决方案是使用代理,但这不是这个项目的选项。

我正在考虑的其他事情是使用 Flash 或 Java。还有其他我可以使用的平台吗?

【问题讨论】:

  • 定义“请求”。你需要做什么?

标签: java javascript flash http cross-domain


【解决方案1】:

您将不得不坚持使用代理解决方案,因为 flash 和 java 具有与 javascript 相同的跨域限制。如果这是仅供个人使用的东西,据我所知,有一个选项可以使用 flex builder 和 falsh player 的调试器版本,它可以发出跨域请求。

【讨论】:

    【解决方案2】:

    Java 和 Flash 都支持 crossdomain.xml 文件,分别记录在 Oracle 和 Adob​​e 网站上。

    W3C 正在制定一个采用不同方法的标准。什么时候由哪些系统实现,我无法预测。

    【讨论】:

    • 这里提到的 W3C 标准是 CORS 和 UMP,CORS 是已部署的标准,所有主流浏览器都支持它的一个子集,但是远程服务器需要启用 CORS 以允许来自您的主机的 XMP 请求.目前代理是您前进的唯一途径,除非您可以控制您正在调用的所有远程服务器。
    【解决方案3】:

    如果您对要向其发出跨域请求的服务器具有管理访问权限,则可以使其服务于 Flash 跨域策略文件,该文件授予另一台(或多个服务器)跨域访问权限。那么其他服务器需要使用 Flash 进行跨域请求。

    如果您正在寻找可以帮助您入门的东西,请查看开源 Forge 项目。它在 JavaScript 中公开了一个跨域 XmlHttpRequest API,因此您只需编写 JavaScript 代码:

    http://github.com/digitalbazaar/forge/blob/master/README

    【讨论】:

      【解决方案4】:

      “Javascript 已经失效,因为大多数浏览器不允许跨域调用。”

      不幸的是,Javascript 绝对是其中之一。您只需使用您喜欢的任何src url 向页面添加一个新脚本。它被称为Cross-Site Scripting(或 XSS)。 IMO,它引入的漏洞使得浏览器试图规范“同源”策略的所有其他尝试都毫无意义。他们只是想在一条已经掉到你脚踝周围的裤子上修补一个洞。

      【讨论】:

      • 这是一篇非常混乱的文章,在我看来它根本不正确。术语“跨站点脚本”(或 XSS,如前所述)是指敌对方的一种 攻击(从 Wikipedia 文章中可以清楚地看出),它不需要与<script> 标记来自与其自己的域不同的域。页面故意利用从任何地方获取脚本的能力是完全不同的事情。实际上,从 Google 的服务器中提取 jQuery 库是非常常见的。
      • 你是说我可以在我的 html 中引用来自其他域的任意脚本,而我的服务器中的脚本可以将请求发布到第三方服务器?
      • @itakenocrud 是的,当然这些都是可能的。从 Internet 上的任何地方发布到 URL 的能力是存在诸如安全会话之类的东西的原因。服务器通常会拒绝未正确附有有效会话 cookie 的传入 POST,可能与只有经过身份验证的客户端才能拥有的其他安全信息结合使用。
      • @Pointy:你说的是真的,我可能没有说清楚。关键是,您可以使用 Javascript 进行跨域调用。所以 OP 的假设实际上是不正确的。
      • @Robusto 是的,我同意。这一切都取决于情况。例如,如果他拥有两个域,则可能根本不存在安全问题。同样,如果两个域之间存在已知关系(例如,两家公司之间的合同业务安排的一部分),那么扩展信任可能没有问题。现在,制作一个允许 anybodyanywhere 脚本提供 URL 的站点,这将是一个大问题 :-)
      猜你喜欢
      • 2012-08-27
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 2012-10-30
      • 2017-01-23
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多