[英]abort one ajax request in multiple ajax request
我使用ajax上传多个文件。用户可以在同一时间上传多个文件。我如何仅对一个上传文件中止ajax? 这是ajax:
areq=$.ajax({
url: $(this).attr('action'),
xhr: function() { // custom xhr (is the best)
var xhr = new XMLHttpRequest();
//load
xhr.upload.addEventListener("load", function(evt) {
$("#msg").text('success !' );
}, false);
//error
xhr.upload.addEventListener("error", function(evt) {
// show progress like example
$("#msg").text('error !' );
}, false);
//abort
xhr.upload.addEventListener("abort", function(evt) {
$("#msg").text('abort !' );
}, false);
return xhr;
},
type: 'post',
processData: false,
contentType: false,
data: fd,
success: function(data) {
// do something...
}
});
上传文件的最大数量为10。因此,我在js文件的第一个定义了此变量:var sssss,formaa,formab,formac,formad,formae,formaf,formag,formah,formai,formaj; 并保存$ .ajax到sssss。$ .ajax放置此开关后:
stra=$(this).parent().index();
switch (stra) {
case 10:
formaa = sssss;
break;
case 9:
formab = sssss;
break;
case 8:
formac = sssss;
break;
case 7:
formad = sssss;
break;
case 6:
formae = sssss;
break;
case 5:
formaf = sssss;
break;
case 4:
formag = sssss;
break;
case 3:
formah = sssss ;
break;
case 2:
formai = sssss;
break;
case 1:
formaj = sssss;
break;
}
stra是正在上传的文件数。当用户单击“取消”按钮时,此函数称为:
$("form span#stop").click(function(){
stra=$(this).parent().parent().index();
switch (stra) {
case 10:
formaa.abort() ;
break;
case 9:
formab.abort();
break;
case 8:
formac.abort();
break;
case 7:
formad.abort();
break;
case 6:
formae.abort();
break;
case 5:
formaf.abort();
break;
case 4:
formag.abort();
break;
case 3:
formah.abort();
break;
case 2:
formai.abort();
break;
case 1:
formaj.abort();
break;
}
});
stra也是上传文件的数量。因此我将$ .ajax复制到另一个变量,该变量将考虑每个文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.