私は、jqueryによって純粋なjavascript xhrリクエストメソッドに表示および非表示にする必要があるsignlehtml要素を持っています。今のところ、リクエストが完了/成功したときに非表示にせずに常に要素を表示します。エラーが発生した場合は、もう一度非表示にします。
html
<div class="ajax-loading">Loading ..</a>
xhrメソッド
function post(_url, _callback,_data){
var xhr = createCORSRequest('POST',_url);
if (!xhr){
throw new Error('CORS not supported');
}
$('.ajax-loading').show();
xhr.send(_data);
/*SUCCESS -- do somenthing with data*/
xhr.onload = function(){
// process the response.
_callback(xhr.responseText);
$('.ajax-loading').hide();
};
xhr.onerror = function(e){
console.log(e);
$('.ajax-loading').show();
};
}
問題は、私が常に$ .ajax()ステートメント(error、success、beforeSend)でそれを行うことです。今回は、純粋なjavascript xhrリクエストがあり、その方法がわかりません。
より明確にするために、私はこれを次のようにxhrjavascriptに変換したいと思います。
$.ajax({
/*data etc ...*/
error:function(){
$('.ajax-loading').show();
},
success:function(){
$('.ajax-loading').hide();
},
beforeSend:function(){
$('.ajax-loading').show();
}
});
編集済み
私も成功せずに試しました:
function get(_url, _callback){
var xhr = createCORSRequest('GET',_url);
if (!xhr){
throw new Error('CORS not supported');
}
xhr.send();
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 /*COMPLETE STATEMENT*/){
alert(xhr.readyState);
}
};
/*SUCCESS -- do somenthing with data*/
xhr.onload = function(){
// process the response.
_callback(xhr.responseText);
};
xhr.onerror = function(e){
console.log(e);
};
}