2015-01-09 2 views
0

jquery를 사용하여 PDF를 반환하는 백엔드에 게시물 요청을 제출합니다. 백엔드에서 오류 및 성공적인 응답을 감지하는 방법이 있는지 궁금합니다. 나는이 $ 아약스를 사용하여 전송 수행 할 수 있습니다 알고 있기 때문에html 양식이 성공했는지 또는 오류가 발생했는지 감지

form = $document.createElement("form")).attr({"method":"POST", "action":"myurl"}); 
$(document.createElement('input')).attr({'type': 'hidden', 'name': 'data', 'value': data}).appendTo(form); 
form.appendTo(document.body).submit() 

을 내가 이것을 변경하려면 어떻게 다시 성공 콜백 또는 오류 통화가 여전히 양식 제출을 사용하는 동안 :

나는 사용하여 양식을 생성 정기 우편 요청.

+0

수 없습니다. 제출과 함께 페이지가 새로 고쳐지며 전에 모든 콘텐츠가 사라집니다. – epascarello

+0

@epascarello가 잘못되었습니다. 내 대답을 보라. 타겟 및 iframe을 사용할 수 있습니다. –

+0

@DonRhummy 위의 코드에서 iframe은 어디에 있습니까? 그리고 코드는 PDF를 반환하고 있습니다 ... 웹 페이지가 없습니다 .... – epascarello

답변

1

이 작업을 수행 할 수있는 두 가지 방법이 있습니다 : iframe을 반환 iframe을 사용 후

  • 제출 Ajax를 사용하여

    1. 부모의 메소드를 호출하는 자바 스크립트 코드 일부

    2 차 선택의 경우 양식의 타겟을 iframe의 이름으로 설정해야합니다.

    form.target = myIframe.getAttribute("name"); 
    

    그런 다음 해당 iframe에 제출됩니다 (자바 스크립트를 통해 작성하고 문서에 넣을 수 있음).

    다음 상위 프레임의 방법을 호출하는 자바 스크립트가있는 HTML 페이지를 반환해야합니다 iframe이 :

    var MyResponseHandler = { 
        response: function(res) { 
         alert(res); 
        } 
    } 
    

    편집 : 상위 프레임에서

    ...include all the regular HTML code... 
    <script> 
        window.parent.MyResponseHandler.response("ok"); 
    </script> 
    

    , 당신은 그 핸들러를 작성해야합니다 : 응답으로 PDF를 반환하려면 다음 두 가지 방법으로이 작업을 수행 할 수 있습니다.

    1. 응답 필요 JavaScript를 새 창에서 열기

    2. PDF를 페이지 데이터로 반환하는 경우 서버 측 코드를 사용하여 성공시 PDF를 반환하십시오. 브라우저 또는 위의 오류 코드를 참조하십시오.

  • +0

    하지만 게시 된 데이터와 해당 데이터에 의존하는 가능성이있는 데이터 사이에 연결이 끊어져 – charlietfl

    +0

    @charlietfl이 계산 될 수 있습니다. –

    +0

    오, 나는 그것이 설명 될 수 있지만, 언급할만한 가치가 있다는 것을 알고 있으며, 귀하의 설명이 지나치게 단순화되지 않았 음을 확신하지 못합니다. – charlietfl

    관련 문제