我有这个问题,我现在几天都无法解决......这是我的代码。我想获取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体内......是否有人可以帮助我?...请...非常感谢你
答案 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查看电缆中的流量。