jQuery AJAX加载远程JavaScript捕获错误?

时间:2011-12-20 18:06:33

标签: jquery ajax

我试图通过jQuery的.ajax()函数加载外部JavaScript文件(尝试过.getScript(),但它有同样的问题)。

根据文档和测试,当从远程源加载脚本时出现错误时,它不会触发错误事件,甚至任何全局AJAX事件。

据我所知,成功事件中唯一被触发的事件。

我的问题是:如何检测远程脚本是否无法加载。

我无法更改远程脚本,但我可以检测它是否已加载。 (通过检查是否定义了变量)。

2 个答案:

答案 0 :(得分:1)

设置一段时间的超时,并在成功回调中取消超时。如果超时触发,则可以取消请求并再次尝试和/或执行错误处理。

答案 1 :(得分:1)

jQuery"有帮助"为您评估脚本。如果您想避免这种情况,可以手动设置dataType

$.ajax({
           url : '/foo'
    , dataType : 'text'
    ,  success : function(){ ... }
});

这将阻止jQuery评估脚本。然后,您可以eval将其包裹在try/catch