2012-08-31 48 views
0

我已經安裝在我的Rails 3.2的應用程序的供應商資產目錄的fancybox(例如jquery.fancybox.pack.js,jquery.fancybox.css不加載,並在其各自的目錄供應商的資產內的相關圖片沒有額外的文件夾)。的fancybox 2 Rails中

的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' %> 

我在本地主機上運行這一點,這可能是問題。在Chrome中,我看着控制檯,發現以下錯誤:

XMLHttpRequest cannot load http://www.youtube.com/embed/myvideocode?fs=1&autoplay=1 . Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin

有沒有人知道這個錯誤的含義?我已經看到了關於這個錯誤的幾個SO問題,但沒有具體的解決方案來解決如何在Rails中通過它。或者,我錯過了什麼?

+0

爲什麼您不嘗試在服務器環境中測試自己的答案? ;)...我敢打賭,本地測試與這個問題有關。 – JFK

+0

我希望有一個更簡單的答案:)我不能將應用程序部署到生產中而不知道100%,並且設置一個全新的服務器/應用程序來解決一個問題有點麻煩。我希望有人有類似的經歷,並能以某種方式告訴我。 – Justin

+1

然後我會BTW對其進行測試,看看我是否能重現該問題....但隨着時間一點點(卡住現在) – JFK

回答

1

其實,你已經發布的錯誤信息是自解釋 - Ajax請求不準由於安全限制。

真正的問題是 - 爲什麼會在腳本製作一個Ajax請求,因爲它應該創建一個iframe。看起來腳本無法猜測內容類型,正如JFK已經提到的那樣,您可以通過添加classname「fancybox.iframe」來提供幫助。