2014-07-25 71 views
0

我知道在這個時間點是爲Stratus的支持有限,但備案...層雲玩家不再加載曲目從頁面錨標籤

於2014-07-25在stratus.sc停機後,Stratus玩家將不再使用具有.stratus類的錨標籤播放。

這似乎是一個CORS問題。

從Chrome的開發者控制檯輸出:

無法執行「的postMessage」上「DOMWindow」:提供的目標來源(「http://stratus.sc‘)不匹配收件人窗口的原點(’http://www.stratus.sc」)。

我使用本地託管stratus.js文件,因爲我做了一些調整,以允許AJAX友好鏈路負載,而是因爲它有一個硬編碼引用層雲連本地託管stratus.js失敗。 SC。

但是,該頁面無法實現,因爲stratus.sc現在強制重定向到www.stratus.sc,根據Chrome錯誤消息顯示,stratus.sc服務器將其視爲不同的域。

在stratus.js出錯行似乎是:

$.postMessage($(this).attr('href'), src, $('#stratus iframe')[0].contentWindow); 

的postMessage的方法本身是工作,但父窗口參數傳遞到層雲IFRAME不再傳遞由於嚴格的跨域策略在stratus服務器上。

希望有人可以查看服務器配置並恢復以前的功能。

感謝

+0

好吧再玩一次,我失去了耐心,解決這個問題對我個人通過註冊我自己的Soundcloud API密鑰,從stratus.sc下載相關的Stratus文件,並重新配置所有內容以在本地運行。 在這一點上,一切似乎都在發揮作用,我現在能夠自定義行爲以更好地滿足我的網站需求以及當前的jQuery。 –

回答

1

您也可以在本地舉辦stratus.js文件,並進行了小小的修改,以適應重定向。

變化:

... 'http://example.com:3000' : 'http://stratus.sc'; 

要:

... 'http://example.com:3000' : 'http://www.stratus.sc'; 
+0

謝謝,但這並不能解決我所知道的任何問題。 即使使用www重定向,託管的stratus播放器仍然「有效」,它只是從父窗口中斷開與iframed播放器交互的功能。 我提出www重定向的一點是即使在stratus演示頁面本身也會破壞iframe交互,因爲CORS策略現在非常嚴格,它將www.stratus.sc和stratus.sc視爲兩個完全不相關的域。 –

+0

我進一步研究它,並恢復了我的舊設置來測試它。 你說得對,這個解決方案現在可以工作,但這是因爲自從我發表文章以來,CORS在stratus.sc上的政策已經放寬,將www.stratus.sc和stratus.sc作爲同一個域名。 感謝您的關注。 之前,http://www.stratus.sc/js/player.js中的第180行將阻止該解決方法生效。 –

-1

若要使此功能工作再次:

  1. http://www.stratus.sc/stratus.js
  2. 打開下載腳本中的腳本在你的文本 - 編輯&第10行更改: 「stratus.sc」改爲「www.stratus.sc」
  3. 將編輯的腳本上傳到您的服務器。
  4. 在您的網頁的頭標籤中,找到您的服務器上新位置的層雲庫。 例如 <script type="text/javascript" src="http://stratus.sc/stratus.js"></script>

成爲

<script type="text/javascript" src="http://yourdomain.com/scripts/stratus.js"></script>

如今,隨着「stratus'級鏈接應在層雲玩家

+0

正如我在原來的帖子中提到的那樣:「這個頁面是不可能的,因爲stratus.sc現在強制重定向到www.stratus.sc」(來自我的原始文章) 如果不明確,stratus.js文件利用在stratus.sc上託管的實際玩家的js腳本。即使您在本地託管初始腳本,您的頁面仍然不會獨立於由stratus.sc託管的JavaScript。 –

+0

您必須從stratus.sc下載這些附加文件,在本地託管它們,並註冊您自己的API密鑰以訪問soundcloud API。 –

+0

這很奇怪,因爲我和你有同樣的問題。我已經通過完成上面提到的事情來解決問題。 – Apoch8000