Javascript JS:通过URL';s,并在出现错误时发出警报
我有一个URL的关联数组,每个URL都有一个我想要迭代的唯一标识符,无论哪个URL抛出401,我都想设置一个特定URL标识符的警报。我被困在警报部分:Javascript JS:通过URL';s,并在出现错误时发出警报,javascript,jquery,ajax,loops,Javascript,Jquery,Ajax,Loops,我有一个URL的关联数组,每个URL都有一个我想要迭代的唯一标识符,无论哪个URL抛出401,我都想设置一个特定URL标识符的警报。我被困在警报部分: for (var i=0; i<lyrs.length; i++){ $.ajax({ url: lyrs[i], dataType: 'json', statusCode: { 401: function(){
for (var i=0; i<lyrs.length; i++){
$.ajax({
url: lyrs[i],
dataType: 'json',
statusCode: {
401: function(){
console.log('there was a 401 error on something');
}
}
});
}
对于(var i=0;i使用闭包:
for (var i=0; i<lyrs.length; i++){
(function() {
var url=lyrs[i];
$.ajax({
url: url,
dataType: 'json',
statusCode: {
401: function(){
console.log('there was a 401 error on '+url);
}
}
});
})();
}
for(var i=0;i如中所述,与401
关联的函数可以采用与error
回调相同的参数。因此,您可以编写:
. . .
statusCode: {
401: function(jqXHR, textStatus, errorThrown) {
// alert with the specific details
}
}
到底是什么问题?看到ajax调用是异步的,当前面的任何一个调用抛出错误时,您很可能已经转移到下一个索引url。我不能介入这一步,但它不会触发控制台日志…我将更深入地研究Close的感谢感谢感谢,我将更深入地阅读文档并尝试设置此argument@atlMapper如果您想提醒任何错误,您可以考虑使用一般错误回调而不是状态代码特定的回调。如果我正确理解,我可以使用“RealCurrn”。显示从函数收到的特定错误。只是为了确认。由于我正在迭代数组,如果我在401节中创建console.log,每个错误不应该在控制台中显示?@atlMapper-每个生成401错误的url都将生成对回调函数的单独调用。errorThrown
参数w我将是HTTP响应状态头的文本部分。但是,如果有不同的错误响应(404等),则不会调用此回调。如果在传递给$.ajax()
的对象中提供了常规错误:函数…
,则将对任何错误响应调用它。