2011-03-16 122 views
2

我有这个问题,我现在无法解决的日子...这是我的代码。我想获得xmlhttprequest或每次点击$(“#btnQuery”)时加载的url。 这里发生的事情是当我点击按钮时,它将显示来自服务器的jqgrid中的数据。如何获取从服务器获取数据的url/xmlhttprequest?

$("#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 /位置显示为: http://localhost/process.php?....%22:%22%22,%22Password%22:%22%22%7D

,它的响应主体simething像:

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

是否有人在这里知道如何获得url /加载以获取数据的xmlhttprequest?和它的反应机构?我婉在我的html身体除了我的jqGrid显示它...有任何人谁可以帮我吗?..请...谢谢你这么多

+0

不知道发生了什么,但一些很好的安全问题在这里介绍。 – fabrik 2011-03-16 10:34:32

回答

1

最后,我已经想通了,怎么办解决我自己的问题....这里是代码:

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

在Firefox中打开”扩展Firebug的“网络”选项卡,你会看到加载了哪些网址。或者使用Wireshark查看电缆中流过的电流。

+0

非常感谢你的答案,但我已经知道如何做到这一点,我需要的是一个JavaScript代码(如果有人知道如何做到这一点),可以输出相同的萤火虫。有没有人知道如何做到这一点?请... – jayAnn 2011-03-17 01:34:48

1

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

火狐,修为其他浏览器:

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); 
} 

或者其他类似的效果,再次,我不是说我推荐这个,但它可以做到这听起来像你”重新过后。

+0

哦,谢谢你myles回答。我真的不明白你给的代码,但我会研究并希望...它会帮助我解决问题。非常感谢你... – jayAnn 2011-03-17 02:09:31

+0

没有说感谢你喜欢upvote或接受的答案;) – Myles 2011-03-17 02:13:52

+1

我想投票,但它需要15个声誉 – jayAnn 2011-03-17 02:46:51