我正在发送一个 jQuery ajax 请求,data:xml
并Content-Type:text/xml
得到以下响应:
--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
更新:经过一番研究,总结了许多不同的回答,我遇到了以下问题:
- Ajax - jquery .ajax() 函数 - 仅处理文本/xml 响应,这就是它不处理二进制数据的原因(在某处读取)。但是,如果我得到多部分 -> Content-Type: application/pdf -> 我正在获取其中的二进制数据。
- 二进制数据可以转换为 base64,然后使用 html5 数据:-> 但这存在复杂的问题,每个浏览器的行为都不同。
现在,我的结论是:
- 只需发出 ajax 请求,获取 URL 路径并使用 window.location.href 直接从服务器下载文件
如果我在这里错了,请纠正:jQuery Ajax cannot handle multipart MIME reponses??