2011-03-16 124 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