0

我在我的 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- Originhttp://localhost:3000不允许来源

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

4

1 回答 1

1

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

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

于 2012-08-31T07:31:50.940 回答