做web开发的同事可能经常会遇到一种js错误,提示”行2,字符1“,这种错误是无法调试的,也无法跟踪到出错的具体代码。这个问题也困扰了很多人。
再做过大量的测试后,我们发现引起这个错误的根本原因还是网页中包含了一个不存在的js文件,本来网页中引用不存在的js文件是允许的,但是IE浏览器就会报js错误,再firefox和世界之窗等浏览器上都不会报错。而且有些机器的ie浏览器也不会报错,初步怀疑是某些插件引起的。
继续跟踪发现,当webserver发现一个不存在的js文件时,会返回一个包含html代码的页面,浏览器把这个页面当作js代码来执行,就爆出了”行2,字符1“错误。
解决办法是修改webserver,遇到text/javascript类型时,如果找不到源文件,就返回一个空页面,不包含任何html代码。由于我们用的是自己开发的webserver,可以修改。如何解决apache的问题暂时还没有答案