Отменить успех Ajax

1

Спасибо за чтение.

В основном, что я хочу сделать, это переопределить событие ajax success.

В большинстве руководств и вопросов, в которых я столкнулся, похоже, только обращается к добавлению обратного вызова к событию успеха. Я хочу фактически переопределить событие.

По сути, мне нужно уловить событие успеха до $.ajax и запустить мою логику до получения события ajax.

То, что у меня сейчас есть, это, но кажется, что изменение значений в "этом" контексте ничего не делает.

var XMLHttpRequestSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(){
    var onError = this.onerror;
    var onLoad = this.onload;

    this.onload = (function(){
        this.response = "new response";
        return onLoad.apply(this, [].slice.call(arguments));
    });

    return XMLHttpRequestSend.apply(this, [].slice.call(arguments));
}

Какие-либо предложения?

  • 0
    $.ajax - $.ajax , jQuery ... он, вероятно, не использует нагрузку XHR
Теги:

1 ответ

0

Я нашел решение.

Следующее, похоже, работает.

var ajaxContext = $.ajax;
  $.ajax = function(options){

    var success = options.success;
    options.success = (function(data){
      data = data.Results;
      return success.apply(this, [].slice.call(arguments));
    });

    return ajaxContext.apply(this, [].slice.call(arguments));
  };

Ещё вопросы

Сообщество Overcoder
Наверх
Меню