0

我试图在ajax之后执行一个动作,但我不能

$.each(LinkUnique,function(i){
        $.ajax({
            type: "POST",
            url: 'http://xxxx.net/',
            success: function(msg){
                if(msg.indexOf("http://") !=-1)
                    link = link+msg+"\n";
            }
        });
    });

这里是脚本之后的下一个动作:

alert("Finish");

async: false不是一个好的选择,因为我的页面完全停止。

4

1 回答 1

3

您可能正在尝试等待所有 ajax 调用完成,因为您正在执行多个:

var xhrs = [],
    link = '';

$.each(LinkUnique,function(i){
    var xhr = $.ajax({
                  type: 'POST',
                  url : 'http://xxxx.net/'
              }).done(function(msg) {
                  if(msg.indexOf("http://") !=-1)
                      link = link+msg+"\n";
              });

    xhrs.push(xhr);
});

$.when.apply($, xhrs).then(function() {
    alert(link);
});
于 2013-08-19T13:00:13.967 回答