2012-07-12 3 views
1

몇 가지 보고서를 실행하기 위해 데이터를 원격 cognos 서버로 보내야하는 GWT 응용 프로그램에서 작업하고 있습니다. 네이티브 자바 스크립트 코드를 사용하여 데이터를 보내지 만 어떻게 든 cognos 서버가 모든 데이터를받지 못하면 URL의 매개 변수로 큰 데이터를 보냅니다. 다음 코드입니다 :네이티브 javascript를 사용하여 원격 서버에 대한 POST 요청을 보내지 못했습니다.

private static native void openReportWindow(String action, String uiObject, String reportName, String reportParams) /*-{ 
    var form = document.createElement("form"); 
    form.setAttribute("method", "POST"); 
    form.setAttribute("action", action); 
    form.setAttribute("target", "reports"); 

    var reportValues = new Array(); 
    reportValues = reportParams.split('&'); 

    for(var i=0;i<reportValues.length;i++) { 
     var tempArr = new Array(); 
     tempArr = reportValues[i].split('='); 
     var hiddenField = document.createElement("input"); 
     hiddenField.setAttribute("name", tempArr[0]); 
     hiddenField.setAttribute("value", tempArr[1]); 
     form.appendChild(hiddenField); 
    } 

    document.body.appendChild(form); 

    // open a new window to display the reports 
    window.open(action, 'reports', 'scrollbars=yes,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no'); 
    form.submit(); 

}-*/; 

더 좋은 방법이 있습니까?

모든 도움에 감사드립니다.

+0

당신이 뭘 하려는지에 대한 JSNI에 갈 필요가 없습니다 기억

는 ...에 대한 GWT RPC 예에서보세요 JSON 서버와 대화. – John3136

+0

감사합니다 John3136. 나는 거친 연구를 온라인으로했지만, JSONP가 POST 요청을 보내는 데 사용할 수없는 것 같습니다. 사실입니까? 내 데이터가 2083자를 초과하여 POST 요청을 보내야합니다. URL 매개 변수로 Cognos 서버에 보내야합니다. Pls 참고, 내가 서버에서 응답을 처리 할 필요가 없다, 난 그냥 편도 요청을 보내야합니다. 감사! – beebris

+0

[JsonP에 데이터 게시] [1] 질문을 볼 수 있습니다. [1] : http://stackoverflow.com/questions/2699277/post-data-to-jsonp – Arcadien

답변

1

JSNI를 사용하여 양식을 작성하고 제출하지 마십시오. 완전한 Java API를 사용하여이 작업을 수행 할 수 있습니다.

JSNI를 사용하는 경우 문서 대신 $ doc을 사용하고 창 대신 $ wnd를 사용하여 적절한 창과 문서 객체를 사용해야합니다. (이것은 다른 부트 로더와 GWT 및 코드로드 방법과 관련이 있습니다.) 때로는 윈도우 객체가 자식 프레임을 가리킬 수도 있습니다. $ wnd와 $ doc는 컴파일러에 의해 설정되고 항상 올바른 것을 가리킬 것이다. 당신은 GWT 자바 코드가 아닌 JS에 떨어지는에서 요청을 만들 수 있습니다

+0

저는 아직 초보자입니다. JSNI에는 다른 대안이 있습니까? RequestBuilder 또는 XMLHttpRequest를 사용하여 보았지만 SOP 정책 때문에 둘 다 작동하지 않습니다. 나는 어떤 제안이라도 열릴 수있다. .. 당신은 추적을 고맙다! – beebris

관련 문제