jquery와 jax-rs를 사용하여 pdf 파일을 다운로드하려고합니다. pdf 파일이 동적으로 생성됩니다.jax-rs를 사용하여 jquery로 PDF 다운로드
테스트 목적으로 로컬 pdf 파일을 설정했습니다. 나중에 pdf를 생성하기위한 몇 가지 매개 변수를 구문 분석해야합니다. 이 params를 서버에 게시하고 서버가 pdf 파일을 다시 보냅니다. 이제 마침내 donwload-window를 보려면 JS 측에서 무엇을 할 수 있습니까?
자바 쪽 :
@Path ("/ chatexport /") 공용 클래스 ChatExportController {
private static final String FILE_PATH = "c:\\own\\test.pdf";
@POST
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces("application/pdf")
public Response getFile(List<ChatMessage> chatMessageList) {
File file = new File(FILE_PATH);
ResponseBuilder response = Response.ok((Object) file);
response.header("Content-Disposition",
"attachment; filename=new-android-book.pdf");
return response.build();
}
자바 스크립트 쪽 :
$.ajax({
type: "POST",
url: EXPORT_URL,
contentType: "application/json",
data: JSON.stringify([{authorId:"1",timestamp:123,content:"Test123"}]),
dataType: "application/pdf",
success: function (json, status) {
if (status != "success") {
console.log("Error loading data");
return;
}
console.log("Data loaded!");
},
error: function (result, status, err) {
console.log("Error loading data", err);
return;
}
});
오류에 Err 개체 던져진 콜백은 다음과 같이 말합니다. No conversion from text to application/pdf
음, pdf 파일에 대한 구체적인 다운로드 URL이 없습니다. 문제는 pdf가 생성되었는지 확인하기 전에 JSON 데이터를 보내야한다는 것입니다. 그런 다음 다운로드하십시오. – Christian
계속 사용할 수 있습니다. (숨겨진) iframe을 대상으로하는 (동적) 양식을 만듭니다. 이 양식을 사용하여 POST 할 수 있으며 응답을 계속 다운로드 할 수 있습니다. –