0

新手来了 我有一个循环通过 3 个不同请求的 Ajax 函数。但是,如果第一个请求失败,我希望其他请求终止。我尝试输入一个'break'语句,但得到一个'Illegal break statement'错误,我猜是因为它不是直接在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;
        }
4

1 回答 1

2

利用

。失败()

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

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

    }
于 2013-09-08T07:28:16.230 回答