【问题标题】:Current best practices for loading content from another domain当前从其他域加载内容的最佳实践
【发布时间】:2011-09-15 11:53:06
【问题描述】:

我的任务是处理一个项目,我们希望从另一个域加载内容并将其推送到我们页面的 id 中。

通常,我会说有一个代理脚本来处理这个问题,但我很好奇是否有更好的解决方案。在其他服务器上包含仅 document.writes 其他内容的页面也许更好?

是否有更好的当前解决方案支持 IE7+ 和 FF3+? YQL sol'ns 是否支持 IE?

编辑
这是一个混合的 RoR / PHP 服务 - 这部分是 PHP。 HttpHandler 看起来不错 - 有点像使用 file_get_contents 的本地代理,但有一些额外的功能。

Re document.writing out html - 这是我倾向于使用 JSONp 的方式,因为 JSONp 可能会给技能范围很大的最终开发人员带来麻烦。我这样做会不会很疯狂(好吧,更疯狂)?!

谢谢

【问题讨论】:

    标签: javascript jquery cross-domain


    【解决方案1】:

    我不知道您使用的是什么服务器端代码,但过去我在 asp.net 中使用过 http 处理程序。 Dave Ward 在这方面做了一个很好的教程。

    http://encosia.com/use-asp-nets-httphandler-to-bridge-the-cross-domain-gap/

    这很好,因为它不会经历整个页面生命周期,所以它比添加一个通过 response.write 提供数据的页面要快。

    【讨论】:

      【解决方案2】:

      当前的最佳做法是使用 jsonp 服务,如果您可以控制其他域。如果您不这样做,那么您最好在自己的域上设置代理服务。

      【讨论】:

      • 我们并没有真正处理任何信息。 document.write 是不是太丑了?主要做服务器开发。
      • 好吧,document.write 将在您已经拥有内容之后。由于您在问题中标记了 jQuery,因此使用类似 $('#container').html(); 之类的东西会容易得多。考虑到跨域情况,困难的部分实际上是获取内容。
      • 我认为我对 document.write 的使用并不清楚。可以包含一个来自外部域的 javascript 文件,该文件是 document.writing 到当前页面。
      • 如果我理解正确的话,那很遗憾不会按照你想要的方式工作。跨域策略将从提供 page 的域而不是 JavaScript 执行。允许从远程域加载 JavaScript,并且将允许 document.write 任何它想要的。但是,它无法绕过任何与 Ajax 相关的跨域限制。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      • 2017-01-06
      相关资源
      最近更新 更多