发送多个网址的ajax请求

时间:2017-02-15 13:28:40

标签: php jquery ajax

我想为不同的收件人触发2封不同模板的电子邮件。我累了在url旁边添加了另一个url:但是它没有用。有没有办法将更多的电子邮件添加到ajax请求?非常感谢您的建议。感谢

$.ajax({
    type: "POST",
    url: "../wp-admin/emailer.php","../wp-admin/emailer2.php" // add more emailers
    data: dataString,
    success: function(){ return true;}
});
window.location.href = "thank-you";

4 个答案:

答案 0 :(得分:1)

你不能这样做,因为一个AJAX请求只能与一个URL通信,但你可以为不同的URL创建多个AJAX请求,他们将同时完成他们的工作 - 你不需要在开火下一个之前等待一个完成。因此,在这种情况下,您必须使用array保留所有网址。然后您需要的是$.each$.ajax的两个参数形式

var urls = ['/url/one','/url/two', ....];

$.each(urls, function(i,u){ 
     $.ajax(u, 
       { type: "POST",
         data: dataString;
         success: function(){
           return true;
         } 
       }
     );
});
window.location.href = "thank-you";
}

答案 1 :(得分:1)

在多个请求成功后可以使用$.when()

var req1 = $.post("../wp-admin/emailer.php", dataString);
var req2 = $.post("../wp-admin/emailer2.php", dataString);

$.when(req1,req2).then(function(){
     // all requests succeeded
     window.location.href = "thank-you";
}).fail(function(){
    // oops, something went wrong with at least one of the requests
})

答案 2 :(得分:0)

如果您想处理每封电子邮件的回调,并且您的电子邮件少于100封,则可以使用递归 例如,只有在成功发送所有电子邮件后才显示谢谢

var urls=["url1","url2","url3","url4"];
var done=true;
function sendEmails(){

    if(urls.length==0 && done){
        alert("All emails sent successfully");
        return true;
    }else if(urls.length>0 && !done){
        alert("There was an error");
        return true;
    }
    else{
        var url=urls.pop();
        $.ajax({
            type: "POST",
            url: url,
            data: dataString,
            success: function(){ 
                sendEmails()
            },
            error:function(){
                done=false; 
                sendEmails();
            }
        });
    }
}
sendEmails();

答案 3 :(得分:-1)

使用此方法调用多个URl withb数据.... 它还有助于您的代码中的任何位置的未来呼叫或动态呼叫

function sendMyAjax(URLAdd,dataString){
     $.ajax({
         type: "POST",
         url: URLAdd
         data: dataString,
         success: function(){ return true;}
      });
    window.location.href = "thank-you";
    }
};

sendMyAjax("../wp-admin/emailer.php","DataString");
sendMyAjax("../wp-admin/emailer.php","DataString");

您可以使用数组作为商店网址和数据