【发布时间】:2011-07-05 18:14:01
【问题描述】:
我正在使用 JavaScript 进行跨域 JSON(P) 调用,以将 <script> 标记添加到 DOM,并将我希望包含为 src 的 URL 包含在内。正在加载的脚本有一个回调,它在我的页面上调用一个函数,并且我想要的数据作为函数的参数返回。
不过有 2 个问题:
- 有时 JSONP 页面会返回 400 或 404 错误。
- 可以在同一个页面上多次请求同一个 JSONP 文件(每次返回不同的数据)
所以,我需要检测回调函数何时未被触发(这表明 JSONP 文件返回了错误),但我还需要考虑到同一文件可以被请求两次的事实。本质上,我需要检测加载页面时的错误,但我必须在其他文件完成加载之前完成它。是的,文件应该以正确的顺序加载(或返回错误)。
一种(低效)解决方案:
我可以为每个不同的文件加载请求一组不同的函数(例如,callbackFunction0、callbackFunction1 等)。这样,我可以简单地确定其中一个函数何时没有触发,并让我的 JavaScript 采取行动。但是,这会占用大量空间并且效率低下,因为我必须有一个 callbackFunction 才能在同一页面上加载脚本的最长时间(不过,这个数字没有确定的值,所以如果我只做了 15函数和脚本被请求 20 次,会出现错误)。
这有点难以解释,但希望你明白了。谢谢。
【问题讨论】:
标签: javascript include http-status-code-404 jsonp