我正在尝试创建一个代码来检查URL列表(如果可用或不可用)但我的问题是它只返回循环内的最后一个链接。
下面是我的代码:
$('#dlink').click(function(e) {
e.preventDefault();
var dcode = $('#dnum').text();
var dtemp = 0;
for(dtemp = 1; dtemp <= 10; dtemp++) {
var dlink = 'http://sample.com/export_template' + dtemp + '?field_delivery_code_value=' + dcode;
$.ajax(
{
type: 'GET',
cache: 'FALSE',
url: dlink,
success: function(response) {
window.open(dlink);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.debug("error for " + dtemp);
console.log(XMLHttpRequest);
}
});
}
});
答案 0 :(得分:1)
这是一个可以帮助你做到这一点的功能,你不需要jQuery。
var is200 = function (url, callback) {
var request = new XMLHttpRequest();
request.open('GET', url, false)
request.onreadystatechange = function () {
// At ready state 2, headers are received and status code by extension
if( request.readyState == 2)
return callback(request.statusCode == 200);
}
};
request.open(null);
};
回调函数将有一个参数:状态代码与数字200相等的布尔值。
答案 1 :(得分:0)
在循环中使用回调并将变量传递给循环内部更新的变量。因此,当调用回调时,更新后的变量将使用最后一个状态进行所有回调! 有关详细信息,请参阅此主题:When using callbacks inside a loop in javascript, is there any way to save a variable that's updated in the loop for use in the callback?