這可能是一個愚蠢的問題,但我會抓住我的機會。如何在包含它之前測試一個腳本是否有效
我的網站上,我有以下腳本文件:
<script src="http://connect.facebook.net/en_US/all.js"></script>
通常情況下,這會工作得很好。然而,在我工作的地方,我們有一個防火牆,阻止任何流量到facebook.com或facebook.net域名,因爲顯然沒有員工有足夠的自我控制來阻止他們整天玩Farmville而不是工作。
因此,當腳本加載時,它實際上會得到一堆HTML,表示網站被阻止。由於這是HTML和無效的Javascript,瀏覽器彈出腳本錯誤。請注意,我仍然收到HTTP 200,因此我無法通過這種方式捕獲錯誤。
我願意接受這是一個邊緣情況,因爲只有一小部分用戶試圖從防火牆後面訪問我的網站,這種情況恰好阻止了Facebook流量,但我仍然發現自己想知道是否有東西相對容易,我可以做到測試以確保鏈接返回有效的Javascript,或者可能圍繞在一個巨大的try/catch塊中加載腳本並優雅地處理錯誤。任何想法將不勝感激!
UPDATE:
下面是從防火牆的錯誤頁面的HTTP標頭。也許我可以看看「內容類型」標題,如果內容有效,我認爲它會是文本/ JavaScript。
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
Content-Length: 4774
您可以使用AJAX「GET」請求獲取腳本並確保它不以HTML標記開頭? – Pointy 2012-02-02 16:38:52
或者您可以檢查某些響應標頭是否被某些防火牆設置覆蓋 – fcalderan 2012-02-02 16:41:29
當此資源被阻止時,響應長度是否始終爲4774字節?迴應的內容是什麼? – fcalderan 2012-02-02 16:51:34