Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery getScript()有时工作正常,有时返回;parsererror";和类型错误异常_Jquery_Ajax_Getscript - Fatal编程技术网

jQuery getScript()有时工作正常,有时返回;parsererror";和类型错误异常

jQuery getScript()有时工作正常,有时返回;parsererror";和类型错误异常,jquery,ajax,getscript,Jquery,Ajax,Getscript,我对jQuery(目前是1.9.1版本)有一个奇怪的问题,我正在使用getScript()函数根据需要加载一些额外的JS库。它每次都从相同的库加载相同的库,因此多个请求之间没有区别。它总是以“application/javascript”的形式从服务器返回。对于这些请求,我只使用一个浏览器 $.getScript(scripts[s], function(){ onScriptLoaded(); }).done(function(script, textStatus) { console

我对jQuery(目前是1.9.1版本)有一个奇怪的问题,我正在使用getScript()函数根据需要加载一些额外的JS库。它每次都从相同的库加载相同的库,因此多个请求之间没有区别。它总是以“application/javascript”的形式从服务器返回。对于这些请求,我只使用一个浏览器

$.getScript(scripts[s], function(){
  onScriptLoaded();
}).done(function(script, textStatus) {
  console.log(textStatus);
}).fail(function(jqxhr, settings, exception) {
  console.log(jqxhr, settings, exception);
});
它通常运行正常,调用
.done()
,文本状态为
success
。但是,大约十分之一的请求失败,调用
.fail()
-
设置
包含
解析器错误
异常选项
包含
类型错误{}

我真的不知道为什么会这样,因为10次中有9次效果很好。但为什么有时候会失败,我真的不知道。有人能解释一下这个问题吗


我很乐意得到任何提示或帮助。

好的,我已经找到了解决方案,但我不满意,因为我不知道这个问题的真正原因

我使用了回答中提到的解决方案:

这不是一个真正的答案,因为我不知道发生了什么,为什么。我很高兴我成功了,但我希望有人能解释一下


我希望,至少它能帮助有类似问题的人。

您是从同一台服务器调用脚本还是从不同的服务器调用脚本检查Firebug中的网络流量并查看状态代码。我猜可能是某种500服务器错误,我之前在开发工具中检查过,服务器总是返回正确的文件,200 OK,内容类型正确。在我现在删除的答案的评论中,Frodik说,当错误发生时,他甚至通过比较MD5哈希来检查返回的内容!所以发生了一些非常奇怪的事情。我怀疑你正在遭受过早的评估。getScript使用$.get,然后进行解析。我认为浏览器在缓冲区准备就绪之前发出完成信号。如果是这种情况,那么在解析之前屈服应该可以解决它。修改jQuery有点极端,但您可以通过在代码中直接使用get和eval并使用setTimeout调用eval来测试这一想法,从而给XHR一个完成编组的机会。