Fancybox 2未加载到Rails中

时间:2012-08-31 00:55:12

标签: jquery ruby-on-rails fancybox

我在我的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中通过它的具体解决方案。或者,我错过了什么?

1 个答案:

答案 0 :(得分:1)

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

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