我希望执行 XMLHttpRequest
来 GET
资源,但问题是资源可以采用两种不同的格式,而且我不知道是哪一种。第一个是文本 application/json
,在这种情况下我需要一个 string
或一个已经解析的对象;第二个是二进制 application/zip
,在这种情况下,我需要一个 Blob
,然后可以使用 JSZip 进行处理。我总是可以将其作为 Blob
请求,检查响应 header ,然后在必要时使用 FileReader
将其转换为 string
,但是这感觉有点笨拙。有没有更好的办法?浏览器兼容性要求:IE10+ 及最新版本。
最佳答案
最简单的方法是将.responseType
设置为Blob
,检查.response
的.type
。如果.type
是"application/json"
,使用FileReader.prototype.readAsText()
获取JSON
,否则使用 Blob
.response
。
您还可以在实际请求之前执行 HEAD
请求,检查 Content-Type
header 以确定如何处理实际请求的响应。
关于javascript - 如果我不知道响应类型,我可以执行 XMLHttpRequest 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42194622/