这可能是一个愚蠢的问题,但我会抓住我的机会。如何在包含它之前测试一个脚本是否有效
我的网站上,我有以下脚本文件:
<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