[英]Can I perform an XMLHttpRequest if I don't know the response type?
我希望执行XMLHttpRequest
来GET
资源,但是要注意的是该资源可以采用两种不同的格式,但我不知道哪种格式。 第一个是文本application/json
,在这种情况下,我需要一个string
或一个已经解析的对象; 第二个是二进制application/zip
,在这种情况下,我需要一个Blob
,然后可以使用JSZip处理它。 我总是可以将其请求为Blob
,检查响应头,然后在必要时使用FileReader
将其转换为string
,但这有点笨拙。 有没有更好的办法? 浏览器兼容性要求:IE10 +和最新版本。
最简单的方法是将.responseType
设置为Blob
,检查.response
.type
。 如果.type
是"application/json"
,则使用FileReader.prototype.readAsText()
获取JSON
,否则使用Blob
.response
。
您还可以在实际请求之前执行HEAD
请求,检查Content-Type
标头以确定如何处理实际请求的响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.