2012-09-05 1 views
2

내가 data:xmlContent-Type:text/xml와 jQuery를 아약스 요청을 전송하고 다음과 같은 응답이 점점 오전 : 내가 리스폰스는 첨부 파일이있는 다중 이해로jQuery를 아약스 SOAP 다중 응답 PDF

--MIME_boundary 
Content-Type: text/xml; charset=utf-8 
Content-Transfer-Encoding: binary 
Content-ID: <SOAP-ENV:Envelope> 

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope> .............</SOAP-ENV:Envelope> 
--MIME_boundary 
Content-Type: application/pdf 
Content-Transfer-Encoding: binary 

.... pdf binary data ..... 

을 ...하지만 내가 어떻게 할 수 비누 부분과 pdf 원시 데이터 부분을 개별적으로 추출하고이 이진 데이터를 사용하여이 PDF를 작성하십시오. 도움이 필요하면 고맙습니다. 보기

보관이 : http://www.w3.org/TR/SOAP-attachments#SOAPReferenceToAttachements

UPDATE : 후 다른 응답의 많은의 합산 연구의 비트가 나를 위해 발생하는 다음과 같은 문제와 질문들 :

  • 아약스 - jquery .ajax() function- text/xml 응답 만 처리하므로 이진 데이터를 처리하지 못합니다 (어딘가에 읽음). 하지만 만약 내가 multipart -> 콘텐츠 유형 : 응용 프로그램/pdf -> 나는 이진 데이터를 받고 오전지고있다.
  • 바이너리 데이터를 base64로 변환 한 다음 html5 데이터를 사용할 수 있습니다. ->하지만 모든 브라우저가 다르게 동작하는 복잡한 문제가 있습니다. 이제

, 나의 결론은 다음과 같습니다

  • 그냥, 아약스 요청을 URL 경로를 얻을

window.location.href 사용하여 서버에서 직접 파일을 다운로드 내가 틀린 경우 수정 : jQuery 아약스는 멀티 파트 MIME 응답을 처리 할 수 ​​없다 ??

답변

0

AJAX는 UTF-8 인코딩을 사용하므로 이진 데이터 전송을 지원할 수 없습니다. 바이너리 데이터를 Base64로 인코딩 한 다음 반대쪽에서 디코딩해야합니다. 그에 따라 헤더를 설정해야합니다.

Content-Transfer-Encoding: base64 
Content-Description: somefile.pdf 
Content-Disposition: attachment; 
filename="somefile.pdf" 

....then your Base-64 data blob ... 
+0

귀하의 답변은 고맙습니다. 하지만 실제로 비누 반응의 두 번째 부분을 어떻게 추출 할 수 있는지 알고 싶었습니다. jquery .ajax() 함수를 사용하면 위에서 언급 한 응답을 제공하지만 오류가 발생합니다. 멀티 파트 응답을 처리 할 수 ​​없기 때문일 수 있습니다. – owsata

+0

Ajax는 파일 전송을 목적으로하지 않습니다. –