Как перехватывать AJAX запросы

Как перехватывать AJAX запросы

Как перехватывать AJAX запросы


(function (XHR) {
  "use strict";

  var open = XHR.prototype.open;
  var send = XHR.prototype.send;

  XHR.prototype.open = function (method, url, async, user, pass) {
    this._url = url;
    open.call(this, method, url, async, user, pass);
  };

  XHR.prototype.send = function (data) {
    var self = this;
    var oldOnReadyStateChange;
    var url = this._url;

    function onReadyStateChange() {
      if (self.readyState == 4) {
          /****  YOUR CODE HERE ****/
      }

      if (oldOnReadyStateChange) {
        oldOnReadyStateChange();
      }
    }

    /* Set xhr.noIntercept to true to disable the interceptor for a particular call */
    if (!this.noIntercept) {
      if (this.addEventListener) {
        this.addEventListener("readystatechange", onReadyStateChange, false);
      } else {
        oldOnReadyStateChange = this.onreadystatechange;
        this.onreadystatechange = onReadyStateChange;
      }
    }

    send.call(this, data);
  }
})(XMLHttpRequest);

Если надо поменять атрибуты тэгов в ответе, можно пойти таким путём:


function onReadyStateChange() {
      if (self.readyState == 4) {
        self.addEventListener('load', ()=>{
          let element = document.querySelector('селектор элемента');
          if (element) {
            element.placeholder = 'Плейсхолдер'
          }
        })
      }
      ...
}