2011-12-13 22 views
2

我們昨天經歷了由於Facebook沒有提供all.js(這是JavaScript SDK核心文件)而導致的「FB未定義」錯誤。這兩天all.js(Facebook SDK)隨機無法加載

查看Firebug或Chrome開發人員工具中的NET選項卡,我可以看到get.all.js失敗。

幾頁刷新後,它可以正常工作,然後10分鐘後再次不提供該文件。

這是Facebook問題嗎?顯然我們沒有其他的網絡錯誤,而且我們沒有代理。任何人遇到它? Facebook狀態頁面沒有報告任何問題,我在Google上找不到任何近期內容。

這是「正常」嗎?像Facebook的限制基於一些「帽子」或類似的東西?

+0

我們仍然遇到問題。 GET to connect.facebook.com只是在那裏死亡。我們在互聯網的其他方面沒有任何其他問題。其他人有(或有)這個問題?任何可能的原因? –

+1

你有試過關掉它嗎?不,認真地說,在另一臺服務器或不同計算機上嘗試過同樣的事情? –

+0

@webarto是的,我們是4位開發人員,都遇到同樣的問題,也來自不同的位置。 –

回答

5

我以前遇到過這個問題。這是我永遠無法確定的東西,但它被認爲是Facebook的一個問題。我的解決方案是獲取all.js的副本並在本地提供。

+0

這是一個很好的解決方案..我總是這樣做,只有我們必須小心的是每當有更新到js sdk(all.js)我們必須下載到我們的本地服務器,我認爲這不會是艱鉅的任務;-) – Vijay

+0

嗨wafflestomper,我最終使用all.js的本地副本(可怕的)同步加載的情況下,以防Facebook的all.js無法加載公共異步系統。不幸的是,這種情況發生在原始請求超時之後,這意味着經過相當長的時間......但這是開發過程中的有效解決方案。 –

-1

您必須在頁面底部添加Facebook SDK all.js。 在Facebook SDK之前,您必須添加<div id="fb-root"></div>

加載完成後,您可以調用FB函數。

Facebook SDK的調用必須使用document.protocol HTTPS或HTTP。

祝你好運!

+0

嗨皮埃爾,放下頁面的腳本將加快加載,但不會影響其加載週期AFAIK。 –

2

您的描述聽起來像是一個網絡問題,但是如果您正在異步加載SDK並嘗試在FB對象完全加載之前使用FB對象,則會導致此錯誤,並且也可能會停止嘗試加載應付的all.js到Javascript錯誤。

要解決這個問題,把所有引用FB對象看到此頁面上的window.fbAsyncInit函數中:https://developers.facebook.com/docs/reference/javascript/

這可能不是你的問題,但幾乎總是解決方案時,我看到錯誤。