在$ .ajax中有beforeSend函數,但現在我試圖使用XMLHttpRequest,我正在尋找$ .ajax中beforeSend的等效函數。我如何在這裏實現它。AJAX:什麼是beforeSend函數在XMLHttpRequest中的等效函數
這裏是我的代碼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();
}
}
}
由於用戶上傳圖片到我的網站,我需要做一個等待界面火災前的呼叫,因爲圖像尺寸過大。
beforesend只是一個在發送ajax調用之前執行的函數,沒有什麼特別的嗎?你是否打算擺脫jQuery相關代碼的其餘部分,包括那些動畫呢?否則,有什麼意義? – adeneo
不,我的意思是,當我點擊按鈕時,它應該首先彈出加載動畫,直到圖像完全上傳。當我點擊按鈕時,會發生什麼情況,用戶不會識別圖片是否仍在上傳。此外,我不希望用戶在我的頁面上執行操作,而圖片仍在上傳 –
另外,因爲我將動畫放在beforeSend中的其他$ .ajax代碼中。 –