我经常使用.getScript加载一些动态生成的javascript,有时加载的数据会导致parsererror,例如当一个字符串包含一个引号,然后在javascript中过早地结束字符串,打破文件。
这是我的代码:
$.getScript(URL, function(data){
scriptCallback(data);
}).fail(function(jqxhr, settings, exception){
console.error('getScript fail! See below:');
console.error(jqxhr);
console.error(settings);
console.error(exception);
});
当发生parsererror时,我在控制台中获得此输出:
getScript fail! See below:
An object with status 200 OK and responseText a great load of javascript
parsererror
SyntaxError: Unexpected identifier
at eval (<anonymous>)
at jquery-1.12.0.min.js:2
at Function.globalEval (jquery-1.12.0.min.js:2)
at text script (jquery-1.12.0.min.js:4)
at Wb (jquery-1.12.0.min.js:4)
at y (jquery-1.12.0.min.js:4)
at XMLHttpRequest.c (jquery-1.12.0.min.js:4)
然而,这实际上没有一个能帮助我找出脚本文件中发生错误的WHERE。我只是希望能够点击它加载的脚本文件的内容并查看错误的位置,就像在页面上或加载文件中的javascript一样。
这是不可能的吗?
感谢。
答案 0 :(得分:1)
仔细检查,然后再三遍检查要使用getScript加载的代码。就我而言,我有一条长长的SQL语句传递到AJAX post参数中,因此出于可读性考虑,我将该语句分成几行并置。 IDE没有错误,但是getScript总是返回parseError或SyntaxError ...您无法查明出现问题的代码行的事实实际上是在告诉您什么都没有执行-parseError意味着什么都没有运行。在执行任何操作之前,目标JavaScript的解析失败。
答案 1 :(得分:0)
通常错误发生在js文件中,该名称显示在匿名旁边。
在您的情况下,它是 eval
所以点击它 eval ,它会带你到错误的那一行。