質問

jQueryでAjax Ready Statesを呼び出す方法 $.ajax 方法?

役に立ちましたか?

解決

$.ajax() xmlhttprequestオブジェクトを返します 本当 状態が変わるにつれてそれにアクセスしたい、あなたはこれを行うことができます:

var xhr = $.ajax({ ... });
xhr.onreadystatechange = function() { alert(xhr.readyState); };

しかし、組み込みのコールバックは、ほとんどの用途に必要なすべてであるはずです。 successcomplete.

リクエストが発射される前に物事を行うには、使用してください 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.")}
});

コールバック関数でアクセスできるパラメーターを正確に確認できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top