【问题标题】:rails 3 ajax response from another application来自另一个应用程序的 rails 3 ajax 响应
【发布时间】:2011-01-20 07:38:42
【问题描述】:

我有一个用于多个应用程序的错误跟踪应用程序。 在应用程序中,我有一个tickets_controller,它使用facebox_render 在facebox 中呈现一个新表单。

当我在同一个应用程序中执行此操作时,它工作正常。 明确地说,错误跟踪器在localhost:3000 上运行,客户端应用程序在localhost:3001 上运行

但是,如果我通过 ajax 请求从 localhost:3001 中点击 localhost:3000/tickets/new。它根本不加载表单。我尝试将div 放入localhost:3001 应用程序并通过localhost:3000/tickets/new 更新它,也不起作用。

有什么需要配置或添加的吗?

【问题讨论】:

    标签: jquery ruby-on-rails ajax ruby-on-rails-3


    【解决方案1】:

    这是由于 XMLHttpRequest 及其same origin 策略的限制。简而言之,您不能通过 AJAX 进行跨站点请求(这是您的情况,因为端口号是源定义的一部分)。

    对于此问题,您可能需要调查几种解决方法,例如。 JSONP 或代理网络服务。 This article 很好地总结了几个可能的解决方案。

    【讨论】:

      【解决方案2】:

      从 Facebox 示例中,它看起来像是通过 XHR/AJAX 加载远程页面内容。您只能对同一域/端口上的页面执行此操作。

      在您的场景中,您需要将页面加载到 iFrame 中。我不知道Facebox是否可以做到这一点。查看Fancybox,因为它可以做到这一点并且很容易实现。

      【讨论】:

      • 嗯.. 我不认为这是 facebox 的问题。因为正如我在问题中提到的那样“我尝试在 localhost:3001 应用程序中放置一个 div 并从 localhost:3000/tickets/new 更新它,也不起作用”,但仍然会尝试fancybox。即使它有效,关于 div 更新的问题仍然没有得到解答。谢谢..
      猜你喜欢
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      相关资源
      最近更新 更多