如何获取加载的url / xmlhttprequest以从服务器获取数据?

时间:2011-03-16 10:30:03

标签: php xmlhttprequest httpresponse jqgrid-php

我有这个问题,我现在几天都无法解决......这是我的代码。我想获取xmlhttprequest或每次点击$(“#btnQuery”)时加载的url。 这里发生的事情是,当我点击按钮时,它将从服务器显示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以获取数据吗?和它的反应机构?除了我的jqgrid,我想把它显示在我的html体内......是否有人可以帮助我?...请...非常感谢你

3 个答案:

答案 0 :(得分:1)

好吧,我不是建议这个好形式,但你应该能够重新定义XHR上的send函数,拦截任何出去的请求,抓住原始的响应处理程序,将它包装在你自己的处理程序中你仍然可以调用原始函数,但在那里插入你自己的数据。粗略的例子:

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 :(得分:1)

最后,我已经想出如何解决我自己的问题....这是代码:

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

   //add something here to show the myUrl;

.getGridParam返回options数组中的url。你可以使用它返回一些参数。只需访问此站点:http://www.secondpersonplural.ca/jqgriddocs/_2eb0fi5wo.htm了解有关jqgrid方法(方法,参数,解释)的更多信息。

答案 2 :(得分:0)

在Firefox的Firebug扩展程序中打开“网络”标签,您将看到加载了哪些网址。或者使用Wireshark查看电缆中的流量。