dla*_*t86 169 debugging google-chrome syntax-error
在Google Chrome中加载我的网页时,我在控制台中出现了一个模糊的错误:
未捕获的SyntaxError:意外的输入结束
我不知道是什么原因造成的.我该如何调试此错误?
Ivo*_*zel 219
这个特殊错误是关于v8的一个令人讨厌的事实.在大多数情况下,您的JavaScript会以某种方式被破坏.例如,缺少a }
或类似的东西.
给出示例,这将产生"意外的输入结束":
eval('[{"test": 4}') // notice the missing ]
Run Code Online (Sandbox Code Playgroud)
但问题的根源似乎是被请求的JSON的URL有内容类型的text/html
的Chrome显然试图解析为HTML,然后导致输入意外结束由于所包括的图像标签是解析.
尝试将Content-Type设置为text/plain
我认为它应该解决问题.
尽管如此,V8可以做一个更好的工作,告诉一个输入意外结束的确切位置.
小智 72
尝试使用Firebug for Mozilla - 它将显示失踪的位置}
.
fal*_*lla 32
在我的例子中,我试图解析一个空的JSON:
Run Code Online (Sandbox Code Playgroud)JSON.parse(stringifiedJSON);
换句话说,发生的事情如下:
Run Code Online (Sandbox Code Playgroud)JSON.parse("");
Dro*_*dOS 10
对于记录,任何人试图找到导致此错误的各种原因.一个空的HTML5数据属性
data-mydata = ''
Run Code Online (Sandbox Code Playgroud)
导致错误.您应该检查数据值何时为空字符串,并且根本不包括该属性.毫无疑问,这与脚本生成的HTML有很大关系.
此错误的另一个原因是:如果您的API故意响应没有响应正文,但使用200 OK
状态代码而不是状态代码进行响应204 No Content
.当没有内容时,某些JavaScript库可能无法很好地响应意外的内容类型,因此请使用正确的状态代码!
归档时间: |
|
查看次数: |
434787 次 |
最近记录: |