【发布时间】:2019-09-07 07:47:22
【问题描述】:
我创建了一个简单的邮件程序,用于将我们的更新发送到客户电子邮件中,但是我怎样才能一个一个地发送数据并在服务器端处理每个数据
html:
<p class="response"></p>
<form id="send_updates">
{% csrf_token %}
<textarea name="mail-list" class="mails" id="mails"></textarea>
<button type="submit"> start sends </button>
</form>
javascript:
let mails = $('#mails').val().split('\n');
for(let i = 0; i <= cc.length; i++){
$.ajax({
cache: false,
type: 'post',
url: "{% url 'send_mail' %}",
data: {'email': mails[i]},
async: true,
beforeSend:function(xhr, settings){
xhr.setRequestHeader("X-CSRFToken", "{{ csrf_token }}");
};
success: function(data){
if (data.success) == true{
$('.response').append(mails[i] + ' sent!')
}else{
$('.response').append(mails[i] + ' not sent!')
};
}
});
但是!它发送所有请求而不等待它是否成功
编辑:
我们希望一一监控该电子邮件是否发送成功!
【问题讨论】:
-
这很有意义,因为
$.ajax(..)确实只是简单地发送请求,success: ...是在请求成功后完成的回调。这里绝对有可能附加值的顺序与您提交的顺序不同。 -
寻找像顺序 ajax 这样的 sn-ps,或者最好有一个主邮件程序,您可以在其中发送所有数据,然后 BE 循环和处理,这样您将有一个单一的 http 请求,也可以节省带宽客户端服务器之间来回通信
标签: javascript python django ajax