Определить URL-адрес запроса AJAX - PullRequest
0 голосов
/ 04 февраля 2019

Итак, я использовал приведенную ниже функцию для обнаружения ajax-вызова.

var oldXHR = window.XMLHttpRequest;

function newXHR() {
    var realXHR = new oldXHR();
    realXHR.addEventListener("readystatechange", function() {
        if(realXHR.readyState==1){
            alert('server connection established');
        }
        if(realXHR.readyState==2){
            alert('request received');
        }
        if(realXHR.readyState==3){
            alert('processing request');
        }
        if(realXHR.readyState==4){
            alert('request finished and response is ready');
        }
    }, false);
    return realXHR;
}
window.XMLHttpRequest = newXHR;

Это работает, но теперь мне нужен URL этого конкретного ajax-запроса.У меня есть функции, как показано ниже: -

function loadFundSimulation(num_days = ''){
    var url = "<?php echo site_url('investment_plan/simulation/FUND'); ?>";

        $.post(url, data).done(function (response,status,xhr) {
             #....code....#
        }).fail(function (data) {
            #....code....#
        });
}

Когда в это время вызывается ajax, я хочу URL-адрес этой функции.У меня много таких функций.Когда я получаю URL-адрес, я хочу добавить ? Debug = 1 в конце URL-адреса.Я пытался alert(this.url);, но он возвращал undefined .Любая помощь будет оценена.Заранее спасибо.

Редактировать

var open = XMLHttpRequest.prototype.open;

XMLHttpRequest.prototype.open = function(method, uri, async, user, pass) {
    this.addEventListener("readystatechange", function(event) {  
    if(this.readyState == 4){
       var self = this;
       var response = {
         method: method,
         uri: uri,
         responseText: self.responseText
      };
      response.uri = uri + '?debug=1';
      console.log(response);  
    } else {
        console.log(this.readyState);
    }
    }, false);
  open.call(this, method, uri, async, user, pass);
};

У меня есть URL-адрес этого запроса AJAX, и я также добавил ? Debug = 1 .Когда я console.log(response); вижу, что URL изменяется, но я все еще не вижу никакой ошибки.Пожалуйста, дайте мне знать, что я должен сделать что-нибудь еще для этого.

1 Ответ

0 голосов
/ 04 февраля 2019

После многих поисков это лучший способ сделать это.Хотя проверено только на хром.

(function() {
        var proxied = window.XMLHttpRequest.prototype.open;
        window.XMLHttpRequest.prototype.open = function() {
            arguments[1] = arguments[1] + '&debug=1';
            console.log( arguments[1] );
            return proxied.apply(this, [].slice.call(arguments));
        };
    })();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...