2

私は今何日も解決できないこの問題を抱えています...これが私のコードです。$("#btnQuery") をクリックするたびに読み込まれる xmlhttprequest または 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 ボディに表示したいのですが...助けてくれる人はいますか?..お願いします...どうもありがとう

4

3 に答える 3

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 メソッド (メソッド、パラメーター、説明) に関する詳細情報。

于 2011-03-18T02:46:32.947 に答える
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);
}

または、その趣旨の何か、繰り返しますが、これをお勧めすると言っているわけではありませんが、あなたが求めているように聞こえるものを達成できる可能性があります.

于 2011-03-17T01:57:57.910 に答える
0

Firefox の Firebug 拡張機能の [ネットワーク] タブを開くと、読み込まれている URL が表示されます。または、Wireshark を使用して、ケーブルを流れるものを確認します。

于 2011-03-16T11:27:12.683 に答える