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

标签 javascript binary xmlhttprequest

我希望执行 XMLHttpRequestGET 资源,但问题是资源可以采用两种不同的格式,而且我不知道是哪一种。第一个是文本 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/

相关文章:

AngularJS 中的 JavaScript 运行时错误 : Not enough storage is available to complete this operation.

c++ - 如何在 C++ 中从文件中读取小端整数?

linux - 为 Linux 分发二进制应用程序的最佳方式是什么?

java - XMLHttpRequest 返回 PHP 代码,而不是 PHP 输出

javascript - 设置下一个 div 的高度

javascript - 使用低破折号/下划线从 _.pluck 获取对象

javascript - 如何在 react 中保护身份验证背后的组件/路径?

python - 读取二进制文件并遍历每个字节

javascript - XMLHttpRequest JS 图片加载

javascript - 在 JavaScript 中捕获 Access-Control-Allow-Origin 错误