Как получить url / xmlhttprequest, который загружается для получения данных с сервера? - PullRequest
2 голосов
/ 16 марта 2011

У меня есть проблема, которую я не могу решить несколько дней ... вот мой код. я хочу получить xmlhttprequest или URL-адрес, который загружается каждый раз, когда я нажимаю $ ("# btnQuery"). что произошло здесь, когда я нажал кнопку, он будет отображать данные в jqgrid с сервера.

   $("#btnQuery").click( function() {
      var params = {
         "ID": $("#eID3").val(),
         "dataType": "data"
      }
      var url = 'process.php?path=' + encodeURI('project/view') + '&json=' + encodeURI(JSON.stringify(params));
      $('#tblD').setGridParam({
          url:url, 
          datatype: ajaxDataType,  
      });

      $('#tblD').trigger('reloadGrid');   

      $('#firstur').append('the url: ' + url+'<br>');//the xmlhttpRequest should disply here in my html
      $('#secur').append('response: ' + url+'<br>'); //the response of xmlhttpRequest should display here in my html
   });

вот код моего process.php. вот где я собираюсь получить данные для моей jqgrid.

   <?php
       print(file_get_contents("http://localhost/" . $_GET["path"] . "?json=" . ($_GET["json"])));
   ?>

в консоли firebug, отображается xmlhttprequest / location: http://localhost/process.php?....%22:%22%22,%22Password%22:%22%22%7D

и его тело ответа выглядит примерно так:

{"result":{"ID":"1C1OMk123tJqzbd"}, "time_elapsed":0}

Кто-нибудь здесь знает, как получить url / xmlhttprequest, который загружается для получения данных? и его тело ответа? Я хочу показать это в моем теле html, кроме моего jqgrid ... есть ли кто-нибудь, кто может мне помочь? .. пожалуйста ... большое спасибо

Ответы [ 3 ]

1 голос
/ 17 марта 2011

Ну, я не предлагаю это как хорошую форму, но вы должны быть в состоянии переопределить функцию отправки в XHR, перехватывать любые запросы, захватывать оригинальный обработчик ответа, оборачивать его в свой собственный обработчик так, Вы все еще можете вызвать исходную функцию, но вставьте туда свои собственные данные. Для грубого примера:

Firefox, исправление для других браузеров:

XMLHttpRequest.prototype.originalSend = XMLHttpRequest.prototype.send;

var myFunction = function(response) {
    //do stuff 
    this.originalReadyStateHandler(response);
}

XMLHttpRequest.prototype.send = function(optional val) {
    this.originalReadyStateHandler = this.onreadystatechange;
    this.onreadystatechange = myFunction;
    this.originalSend(val);
}

Или что-то в этом роде, опять же, я не говорю, что рекомендую это, но это может выполнить то, что звучит так, как будто вы ищете.

1 голос
/ 18 марта 2011

наконец, я уже понял, как решить мою собственную проблему .... вот код:

    var myUrl = $("#tblData").getGridParam('url');
    myUrl += '&json=' + JSON.stringify(jpar); 

   //add something here to show the myUrl;

.getGridParam возвращает URL из массива параметров.Вы можете вернуть некоторые параметры, используя его.просто посетите этот сайт: http://www.secondpersonplural.ca/jqgriddocs/_2eb0fi5wo.htm для получения дополнительной информации о методах jqgrid (методы, параметры, описание).

0 голосов
/ 16 марта 2011

Откройте вкладку «Сеть» в расширении Firebug Firefox, и вы увидите, какие URL-адреса загружены.Либо используйте Wireshark, чтобы увидеть, что проходит через ваши кабели.

...