我一直在使用responseType设置为“ arraybuffer”的同步XMLHttpRequest加载一个二进制文件并等待它被加载一段时间。今天,我遇到了这个错误:“响应类型属性不正确,XMLHttpRequest的同步方式不正确,窗口不可用。” 大致翻译为“不再支持在window-context(?)中以同步模式使用XMLHttpRequest的responseType。”
有谁知道如何解决这一问题?我真的不想对这样的事情使用异步请求。
var xhr = new XMLHttpRequest(); xhr.open('GET', url, false); xhr.responseType = 'arraybuffer';
在chrome中效果很好。
如XMLHttpRequest规范中所定义,这是正确的行为:
设置时:如果设置"InvalidAccessError"了 同步 标志并且存在关联的XMLHttpRequest文档,则抛出异常。
"InvalidAccessError"
responseType当XMLHttpRequest非异步(即同步)时,无法设置该属性。将的第三个参数设置open为false会导致请求 同步 。
responseType
XMLHttpRequest
open
false