jQuery $ .ajaxおよびReadyStates
-
29-09-2019 - |
質問
jQueryでAjax Ready Statesを呼び出す方法 $.ajax
方法?
解決
$.ajax()
xmlhttprequestオブジェクトを返します 本当 状態が変わるにつれてそれにアクセスしたい、あなたはこれを行うことができます:
var xhr = $.ajax({ ... });
xhr.onreadystatechange = function() { alert(xhr.readyState); };
しかし、組み込みのコールバックは、ほとんどの用途に必要なすべてであるはずです。 success
と complete
.
リクエストが発射される前に物事を行うには、使用してください beforeSend
, 、またはより適切に、ほとんどの場合、 .ajaxStart()
と .ajaxStop()
イベント...たとえば、AJAXアクティビティが進行しているときはいつでも読み込みメッセージを表示します。
他のヒント
jquery 2.0.2でテストされた方法:
$.ajax({
beforeSend: function (jqXHR, settings) {
var self = this;
var xhr = settings.xhr;
settings.xhr = function () {
var output = xhr();
output.onreadystatechange = function () {
if (typeof(self.readyStateChanged) == "function") {
self.readyStateChanged(this);
}
};
return output;
};
},
readyStateChanged: function (xhr) {
if (xhr.readyState == 1) {
/* Connected! Do something */
}
},
url: "..."
});
基本的に、私が必要としていたのは後のコールバックでした readyState
なります 1
(接続)、私の場合、jQueryで「プッシュ」通知を長期に投票するときに役立ちました。
のコールバックを設定することで、必要なすべてを取得できるはずです success
, error
, 、 と complete
あなたが渡すオブジェクトのオプション ajax()
方法。ドキュメントをご覧ください。
http://api.jquery.com/jquery.ajax/
基本的に、それは次のように機能します:
$.ajax({
url: 'ajax/test.html',
success: function(data) {
alert('Load was performed.');
},
error: function() {alert("error occurred.")},
complete: function() {alert("ajax complete.")}
});
コールバック関数でアクセスできるパラメーターを正確に確認できます。
所属していません StackOverflow