【问题标题】:Fancybox 2 Not Loading in RailsFancybox 2 未在 Rails 中加载
【发布时间】:2012-08-31 00:55:12
【问题描述】:

我在我的 Rails 3.2 应用程序的供应商资产目录中安装了 FancyBox(例如 jquery.fancybox.pack.js、jquery.fancybox.css 以及供应商资产文件夹中它们各自目录中的相关图像,没有任何额外内容)。

javascript 和 CSS 资产加载到资产管道的 application.js 和 application.css 文件中。而且,我已经测试并确认它们确实可以正常工作,因为单击时会正确弹出图像。

问题是无法加载 YouTube 视频模式。相反,它只显示每秒左右闪烁的加载 GIF。

这是 jQuery (CoffeeScript) 代码:

$(document).ready ->
  $(".videopopup").fancybox
    maxWidth: 800
    maxHeight: 600
    fitToView: false
    width: '70%'
    height: '70%'
    autoSize: false
    closeClick: false
    openEffect: 'none'
    closeEffect: 'none'
  return

这是页面内的链接代码:

<%= link_to image_tag('thumbnail.png', alt: 'Thumbnail', class: "responsive"), 'http://www.youtube.com/embed/myvideocode?fs=1&autoplay=1', class: 'videopopup', title: 'My Video' %>

我在 localhost 上运行它,这可能是问题所在。在 Chrome 中查看控制台,发现如下错误:

XMLHttpRequest 无法加载 http://www.youtube.com/embed/myvideocode?fs=1&autoplay=1。 Access-Control-Allow-Origin 不允许来源http://localhost:3000

有谁知道这个错误是什么意思?我已经看到了一些关于这个错误的 SO 问题,但是没有关于如何在 Rails 中克服它的具体解决方案。或者,我错过了什么?

【问题讨论】:

  • 为什么不自己在服务器环境中测试一个答案? ;) ...我敢打赌,本地测试与这个问题有关。
  • 我希望有一个更简单的答案 :) 我无法在不了解 100% 的情况下将应用程序部署到生产环境,而且设置一个全新的服务器/应用程序只是为了排除故障有点麻烦问题。我希望有人有类似的经历并且能够以一种或另一种方式告诉我。
  • 然后我会测试它,看看我是否可以重现这个问题....但是需要一点时间(现在卡住了)
  • 顺便说一句,由于您的目标是 youtube embed 模式,您是否尝试像 class: 'videopopup fancybox.iframe' 一样添加 fancybox.iframe 类?...然后它可以在本地或类似的服务器中运行。
  • 这是个好主意 - 我现在就试一试!

标签: jquery ruby-on-rails fancybox


【解决方案1】:

实际上,您发布的错误消息是自我解释的 - 由于安全限制,不允许使用 ajax 请求。

真正的问题是 - 为什么脚本会发出 ajax 请求,因为它应该创建一个 iframe。看起来脚本无法猜测内容类型,正如 JFK 已经提到的,您可以通过添加类名“fancybox.iframe”来提供帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    相关资源
    最近更新 更多