2

これはの誤差関数です$.ajax。通話を遅らせることができないのはなぜ $.ajax(this)ですか?

これは機能します:

error: function (req, status, error) {
                    $.ajax(this);
                    return;
                }

しかし、これはしません

error: function (req, status, error) {
                    var retry = function () { $.ajax(this); };
                    setTimeout(retry, 100);
                    return;
                }
4

1 に答える 1

4

setTimeoutコールバックはグローバルオブジェクトのコンテキストで実行されるためです。
したがって、thiswindow、AJAX設定ではありません。

this変数に格納する必要があります。

于 2012-06-03T21:40:55.467 に答える