有没有办法检测AMD加载器中的404错误?

时间:2014-03-05 01:01:54

标签: javascript error-handling curl.js

我正在开发一个类似于框架的结构,它使用curl.js作为脚本加载器。模块可以位于App或Core目录中,这使我可以轻松地从应用程序覆盖Core模块。我有一个服务器端脚本来搜索这些目录并返回第一个找到的文件,但后来我决定客户端应该能够在没有任何后端帮助的情况下工作,所以现在我有一个函数尝试列出的目录,直到其中一个他们有一个档案。

过了一会儿,我意识到我没有办法区分404错误和语法错误。如果代码中存在实际错误,我希望加载器失败但是在404的情况下它应该只查找下一个文件,如果找不到文件则最终失败。

那么,是否可以检测脚本是否因404而导致失败(在curl.js,AMD或一般在js中)而不是因为加载的代码中的错误?

1 个答案:

答案 0 :(得分:0)

出于安全考虑,浏览器在脚本失败时不会提供太多信息。事实上,IE甚至拒绝调用“加载”事件。 AMD加载器唯一的信息是define()是否被调用。

如果您在脚本文件的开头放置自己的全局函数调用,则可能有一种方法可以检测某些类型的脚本错误。您可以检查是否已调用该函数。您无法检测阻止解析脚本的语法错误,但您可以检测其他类型的错误。

在执行工厂函数时发生错误时,可能会将确切的错误返回到errback函数(curl([]).then(callback, errback))。你确认这是否有效吗?