javascript - 正确解析来自 API 的多部分表单响应,在客户端 javascript 上具有不同的 Content-Types
问题描述
我遇到了以下问题:
通过 API 请求,我得到一个多部分形式的响应,其中总共包含三个文件:
- JSON 中的元数据
- OBJ 或 STL 中的 3D 数据作为八位字节流
- 作为八位流的图像
这是我的 Ajax 请求(也用 fetch API 尝试过,但失败了,所以我想我试试旧的 AJAX 请求)
$.ajax({
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Bearer " + token);
xhr.setRequestHeader("scanFormatEncoding", "obj");
},
type: "GET",
url: this.baseurl + this.scansEndpoint + "/" + this.ScanSessionID,
data: params,
xhrFields: {
responseType: "blob",
},
success: function (blob, status, xhr) {}
编辑:也是我对 fetch API 的请求
fetch(this.baseurl + this.scansEndpoint + "/" + this.ScanSessionID, {
method: "GET",
headers: {
scanFormatEncoding: "obj",
Authorization: "Bearer " + token,
Accept: "*/*",
},
}).then((response) =>
response.formData().then(function (formdata) {
})
);
在这里您可以看到 Content-Type 的响应标头:
当我将 blob 转换为文本时,我可以验证所有数据似乎都在多部分响应中。但是,当我尝试使用自己的解析方法对其进行解析时,我往往无法正确解析图像的二进制数据。所以我的问题是,如何在不担心不同文件类型的情况下解析所有 3 个文件?
我已经搜索了解决方案,但只能找到一些 node.js 而不是客户端 JS。
解决方案
推荐阅读
- python - 硒python中的window.scrollTo
- apache-kafka - TimeBasedPartitioner, Rotate schedule interval, Rotate interval in kafka connect HDFS connector
- c# - 如何正确实现自定义等待者的 OnCompleted 方法?
- android - Why RxJava's "subscribe" method called multiple times?
- c# - 无法加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Logging
- ruby-on-rails - Test database for audit rails
- c# - 将 DateTime 转换为 EPOCH 时间正在返回一个新的 Date
- python - Strange behaviour in replace() in Python
- android - Recycler View Performance when using SpannedString
- java - How to debug "org.hibernate.service.spi.ServiceException"