Ech*_*ara 4 javascript ajax jquery xmlhttprequest
在 $.ajax 中有 beforeSend 函数,但现在我正在尝试使用 XMLHttpRequest,我在 $.ajax 中寻找与 beforeSend 等效的函数。我如何在这里实现它。
这是我的 xhr 代码,
xhr = new XMLHttpRequest();
var url = '../ajax/ajax_edit/update_ajax_staffUser.php';
if(file.files.length !== 0){
if(!check(fileUpload.type)){
alert("This file format not accepted");
return false;
}
xhr.open('post', url+param, true);
xhr.setRequestHeader('Content-Type','multipart/form-data');
xhr.setRequestHeader('X-File-Name', fileUpload.name);
xhr.setRequestHeader('X-File-Size', fileUpload.size);
xhr.setRequestHeader('X-File-Type', fileUpload.type);
xhr.send(fileUpload);
}else{
xhr.open('post', url+param, true);
xhr.setRequestHeader('Content-Type','multipart/form-data');
xhr.send(fileUpload);
}
xhr.onreadystatechange = function(e){
if(xhr.readyState===4){
if(xhr.status==200){
$('.bounce_dim').show();
setTimeout(function(){
$('.trigger_danger_alert_changable_success').show().delay(5000).fadeOut();
$('#palitan_ng_text_success').html('User successfully modified');
$('#frm_edit_staffUser')[0].reset();
$('#modal_staff').modal('hide');
$('.bounce_dim').hide();
},1000);
getUserStaffTable();
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于用户正在将图像上传到我的网站,我需要在调用之前制作一个等待界面,因为图像尺寸太大。
小智 5
您可以通过将beforeSend ()函数放在 XHR 初始化之前来实现,如下所示:
beforeSend();
xhr = new XMLHttpRequest();
Run Code Online (Sandbox Code Playgroud)
但是你应该在上面的代码之前定义你的beforeSend()函数:
var beforeSend = function(){
// your code here
}
Run Code Online (Sandbox Code Playgroud)