2014-02-28 2 views
0

JQGrid 및 검색 필터가 있으며 loadOnce = false입니다. 내가 그리드에서 레코드를 검색하고 나는이 json GET 타입을 파이어 버그에서 볼 수있다.현재 (최신) json URL을 요청하려면 어떻게해야합니까?

http://localhost:8080/myapp/items/listGrid?ticketId=&_search=true&nd=1393573713370&rows=20&page=1&sidx=id&sord=asc&filters=%7B%22groupOp%22%3A%22AND%22%2C%22rules%22%3A%5B%7B%22field%22%3A%22summary%22%2C%22op%22%3A%22cn%22%2C%22data%22%3A%22Test%22%7D%5D%7D 

이 요청을 완료 한 후이 json request url을 받고 싶습니다. 내 pdf 링크에 동일한 매개 변수를 추가해야합니다.

나는

document.URL 
window.location.pathname 
jQuery("#itemsGrid").jqGrid('getGridParam', 'url'); 

출력

"localhost:8080/myapp/items/list" 
"/myapp/items/list" 
"/myapp/items/listGrid?ticketId=" 

어떻게 같은 URL을 얻는 방법 좀 도와주세요 보시기 바랍니다.

+0

자바 스크립트 코드 –

+0

게시 jqGrid가 json 호출 자체를 생성합니까? –

+0

모든 코드가 없으며 jqgrid 라이브러리 만 있습니다. 내 요청 jquery 또는 javascirpt 사용하여 자바 스크립트 코드에서 현재 (최신) json 요청 URL을 얻는 방법입니다. – Sun

답변

0

는 아약스 인 경우는 당신이 XMLHttpRequest.prototype.open 기능을 장식 할 수 전화 :

var lastUrl = calls[calls.length - 1] 

this SO 질문에서이 코드를 채택 다음과 같이

var calls = []; 

XMLHttpRequest.prototype._originalOpen = XMLHttpRequest.prototype.open; 
XMLHttpRequest.prototype.open = function(method, url, async, user, password) { 
    if(method === 'GET') // Only add GET requests 
     calls.push(url); 
    this._originalOpen(method, url, async, user, password); 
} 

지금 마지막 가져 오기 URL에 액세스 할 수 있습니다.

+0

으로 생성하는 jQGrid의 함수에 어떻게 든 연결해야합니다. 직접 또는 간접적으로 응용 프로그램에 게시 할 수 없습니다. 다른 해결책이 있으시면 ... – Sun

+0

@ kumarM : ** set ** URL 대신 ** set ** URL이 필요합니다. – Oleg

0

추가 매개 변수가있는 URL을에 추가하려면 postData 매개 변수 인 jqGrid를 사용해야합니다. 매개 변수를 함수로 정의하는 것이 좋습니다 (예 : the answer). 사용자 자격 증명 정보를 보내야하는 경우 모든 사람이 볼 수있는 URL 대신 사용자 정의 HTTP 헤더에 배치해야합니다. 이 경우에는 loadBeforeSend 콜백을 사용하는 것이 가장 좋습니다. 코드 예제는 the answerthis one을 참조하십시오. 직접 사용하기 전에있는 jqGrid의 url 매개 변수를 수정하는 beforeRequest 콜백의 사용은이 또 하나의 옵션은

도 추천 할 것입니다 최종 솔루션에 https: 대신 http:의 사용을 (the answer 참조).

관련 문제