【发布时间】:2019-09-05 11:03:39
【问题描述】:
我有一系列托管图片,但数量和网址可以更改。但是,它们始终遵循相同的递增命名约定。为了存储存在的图像,我遍历可用的图像,直到遇到错误。此时我存储结果并继续操作。
function checkForExistingImage(u, r = [], i = 0){
var url = u + i;
$.get(url).done(function() {
r.push(url);
checkForExistingImage(u, r, i + 1);
}).fail(function(){
//continue working with the 'r' array
});
}
但是,这总是会在控制台中导致 403(找不到图像)错误,因为最后检查的图像永远不会存在。
我怎样才能不触发这个错误,或者在需要时抑制它?
【问题讨论】:
-
403表示禁止,未找到是404。你确定你访问的地方有权限表host吗?
-
该错误看起来像是您用来找出存在哪些图像的方法的基本部分。您总是可以实现一些返回实际数字的服务器端方法,这样您就不必从客户端探测它们。
-
@Gavin 是的,我可以很好地找到现有的图像,只是当我超过限制时,我会产生错误。
-
@Pointy 遗憾的是,我无法访问后端系统,而只能访问标签管理器
-
同意Pointy,错误是中断递归的条件。如果您想保留现有逻辑但抑制错误,您可以尝试将对 checkForExistingImage 的调用包装在 try catch 块中。
标签: javascript jquery get