2011-03-16 6 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에 대한 데이터를 얻을 곳입니다. http://localhost/process.php?....%22:%22%22,%22Password%22:%22%22%7D

그것은 응답 본문이 같은 simething가요 :

불을 지르고 콘솔에서
<?php 
     print(file_get_contents("http://localhost/" . $_GET["path"] . "?json=" . ($_GET["json"]))); 
    ?> 

표시는 XMLHttpRequest/위치는

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

여기 아무도 않습니다 얻는 방법을 알고있는 URL/데이터를 가져 오기 위해로드되는 xmlhttprequest? 및 응답 본문? 나는 내 jqgrid를 제외하고 내 HTML 몸체에 그것을 표시하는 것을 원합니다 ... 나를 도울 수있는 사람이 있습니까? .. 제발 ... 고마워요.

+0

도대체 무슨 일이 벌어 지지만 좋은 보안 문제는 여기에 나와 있습니다. – fabrik

답변

1

마지막으로, 나는 이미 내 자신의 문제를 해결하는 방법을 알아 냈 .... 여기에 코드입니다 :

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

    //add something here to show the myUrl; 

.getGridParam 옵션 배열에서 URL을 반환합니다. 그것을 사용하는 일부 매개 변수를 반환 할 수 있습니다. jqgrid 메서드 (메서드, 매개 변수, 디자인)에 대한 자세한 내용은이 사이트 (http://www.secondpersonplural.ca/jqgriddocs/_2eb0fi5wo.htm)를 참조하십시오.

0

Firefox의 Firebug 확장 프로그램에서 "네트워크"탭을 열고 로드 된 URL을 확인할 수 있습니다. 또는 Wireshark를 사용하여 케이블을 통해 흐르는 물체를 확인하십시오.

+0

해답을 주셔서 고맙습니다.하지만 이미 그 방법을 알고 있습니다. 그리고 필요한 것은 방화범이 끌리는 것과 같은 결과를 출력 할 수있는 자바 스크립트 코드입니다. 그것을하는 방법을 아는 사람이 있습니까? 제발 ... – jayAnn

1

글쎄, 나는 이것을 좋은 형태로 제안하지는 않지만, XHR의 send 함수를 재정의하고, 나가는 요청을 가로 채고, 원래의 응답 핸들러를 잡고, 자신의 핸들러에서 감쌀 수 있어야한다. 그래서 원래 함수를 호출 할 수 있지만 거기에 자신의 데이터를 삽입하십시오. 거친 예를 들어 :

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

오, 감사합니다. 나는 솔직히 당신이 준 코드를 이해하지 못한다. 그러나 나는 그것을 연구 할 것이고 희망을 갖고 ... 그것은 나의 prob를 해결하는데 도움이 될 것이다. 고마워요 ... – jayAnn

+0

아무 것도 말하지 않습니다 upvote 또는 허용 대답;) – Myles

+1

나는 투표하고 싶습니다 그러나 그것은 15 평판이 필요합니다. – jayAnn

관련 문제