我正在开发一个工具,允许用户输入一些ID,并检查数据库中是否存在这些ID。
编写代码是为了与SOLR数据库一起使用,所以如果ID不存在则没有问题。现在虽然我正在与CouchDB交谈,但如果ID不存在,该工具将不会产生任何结果并产生404错误:404(找不到对象)。
这是我的代码:
// ...
function caller() {
if (validIDs.length === 0) {
promise.resolve();
return;
}
var ID = validIDs.pop();
var url = preURL + ID;
var wrappedResult = {
"ID": ID,
"data": undefined
};
$.getJSON(url).done(function(data) {
wrappedResult["data"] = data;
caller();
});
wrappedResults.push(wrappedResult);
}
caller();
return [promise, wrappedResults];
}
我尝试使用类似的东西:
$.getJSON({
url: url,
dataType: "json",
success: function(data) {
wrappedResult["data"] = data;
myForEach();
alert('success');
},
error: function(data) {
alert('error');
},
complete: function(xhr, data) {
if (xhr.status !== 0)
alert('success');
else
alert('fail');
}
});
但它没有用。 html不显示表,并在控制台中:404(找不到对象)
我查看了其他类似问题中提出的解决方案,但他们没有解决我的问题。
请问我的代码是否可以继续显示已接受ID的结果并指出无效ID?
答案 0 :(得分:0)
jQuery Ajax 404 Handling没有回答我的问题。 什么解决了问题是使用 var jqXHR = $ .ajax({ url:url, 类型:“GET”, }); 而不是 jqXHR.done(功能(数据){ .....}); 我用了 jqXHR.always(function(jqXHR,textStatus,errorThrown){ ........}); 控制台仍显示404(未找到对象),但代码未停止并且正在运行