我试图通过jQuery的.ajax()函数加载外部JavaScript文件(尝试过.getScript(),但它有同样的问题)。
根据文档和测试,当从远程源加载脚本时出现错误时,它不会触发错误事件,甚至任何全局AJAX事件。
据我所知,成功事件中唯一被触发的事件。
我的问题是:如何检测远程脚本是否无法加载。
我无法更改远程脚本,但我可以检测它是否已加载。 (通过检查是否定义了变量)。
答案 0 :(得分:1)
设置一段时间的超时,并在成功回调中取消超时。如果超时触发,则可以取消请求并再次尝试和/或执行错误处理。
答案 1 :(得分:1)
jQuery"有帮助"为您评估脚本。如果您想避免这种情况,可以手动设置dataType
:
$.ajax({
url : '/foo'
, dataType : 'text'
, success : function(){ ... }
});
这将阻止jQuery评估脚本。然后,您可以eval
将其包裹在try/catch
。