请注意!XMLHttpRequest2 规范最近进行了更改,以禁止在设置 XMLHttpRequest.responseType
时发送同步请求。这一变更背后的理念是,尽可能减少同步 xhr 的使用。
例如,以下代码现在会在 Chrome 和 FF 的开发者渠道 build 中抛出 INVALID_ACCESS_ERR
:
var xhr = new XMLHttpRequest();
xhr.responseType = 'arraybuffer';
xhr.open('GET', '/', false); // sync request
xhr.send();
请参阅 WebKit 错误、Mozilla 错误
同步 XHR 不好用的原因有很多,不过 MSDN 的博文“Why You Should Use XMLHttpRequest Aasyncly”(为什么应该异步使用 XMLHttpRequest),很好地解释了这些问题。
对于 Web 而言,这通常是一项重大变更,但可能会破坏一些依赖于同步行为的现有应用。请检查您的 XHR 代码并尽快进行更新,以使用异步请求。