如果我不知道响应类型,我可以执行XMLHttpRequest吗?

时间:2017-02-12 23:45:55

标签: javascript binary xmlhttprequest

我希望执行XMLHttpRequestGET资源,但问题是资源可能有两种不同的格式,我也不知道哪一种。第一个是文本application/json,在这种情况下,我想要一个string或一个已经解析过的对象;第二个是二进制application/zip,在这种情况下,我想要一个Blob然后我可以用JSZip处理。我总是可以Blob请求它,检查响应标头,然后在必要时使用FileReader将其转换为string,但这感觉有点笨重。有没有更好的办法?浏览器兼容性要求:IE10 +和最新的其他内容。

1 个答案:

答案 0 :(得分:3)

最简单的方法是将.responseType设置为Blob,然后检查.type的{​​{1}}。如果.response.type,请使用"application/json"获取FileReader.prototype.readAsText(),否则请使用JSON Blob

您还可以在实际请求之前执行.response请求,检查HEAD标头以确定如何处理实际请求的响应。