我在我的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中通过它的具体解决方案。或者,我错过了什么?
答案 0 :(得分:1)
实际上,您发布的错误消息是自我解释 - 由于安全限制,不允许使用ajax请求。
真正的问题是 - 为什么脚本会发出ajax请求,因为它应该创建一个iframe。看起来脚本无法猜测内容类型,正如JFK已经提到的,您可以通过添加classname“fancybox.iframe”来提供帮助。