2017-02-15 4 views
3

Я хочу запустить два электронных письма с разными шаблонами для разных получателей. Я устал добавлять еще один URL-адрес рядом с url :, однако это не сработало. Есть ли способ добавить больше одного отправителя электронной почты к запросу ajax? Ваш совет очень ценится. БлагодаряОтправить ajax-запрос для нескольких URL-адресов

$.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"; 
+7

Вы не можете сделать это – Satpal

ответ

1

Вы не можете сделать это becuase один запрос AJAX может говорить только один URL, но вы можете создать несколько запросов AJAX для различных URL-адресов, и они будут делать свою работу одновременно - вам не нужно будет дождаться завершения одного из них, прежде чем стрелять в следующий. Таким образом, в этом случае вы должны принять array где вы бронируете все urls.Then вам нужно, это $.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

Можно использовать $.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 
}) 
-1

использовать методы, чтобы это позвони Multiple Data withb URL-адрес .... Это также поможет для будущего вызова или динамического вызова в любом месте в вашем коде

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"); 

Вы можете использовать массив для хранения URL и данных

+1

редирект будет называться немедленно первый метод времени называется и второй не будет даже есть шанс называться – charlietfl

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();