打破AJAX for循环

时间:2013-09-08 07:25:05

标签: javascript jquery ajax for-loop error-handling

新手在这里。我有一个Ajax函数循环3个不同的请求。但是,如果第一个请求失败,我希望其他请求终止。我尝试输入'break'语句,但得到了一个'非法中断语句'错误,我猜是因为它不是直接在for循环中,而是两层下来。我可以想到一些解决这个问题的混乱方法,但我想知道一个好的,简单的解决方案是什么......

function runQueries(request) {
var reports = ['103, 187, 190'];
for (i=0; i < reports.length; i++) {
    report = reports[i];
    $.ajax({
    url: 'proxy.php',
    data: {requrl: request + '&reportType=' + report},
    dataType: 'xml'
    })
    .done(function(response) {
        if ($(response).find('Locations').children('Location').length < 1) {
            displayError(response, report);
            break;
        }

1 个答案:

答案 0 :(得分:2)

使用

.fail()

而不是break使用i =reports.length+1;

$.ajax({
    url: 'proxy.php',
    data: {requrl: request + '&reportType=' + report},
    dataType: 'xml'
    })
    .fail(function() {
         i =reports.length+1;

    }