请注意!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();
同步 XHR 存在多种缺点,但 MSDN 的博文“Why You Should Use XMLHttpRequest Asynchronously”(为何应异步使用 XMLHttpRequest)对这些问题进行了详细说明。
这对 Web 来说是一项重大变革,但可能会破坏一些依赖于同步行为的现有应用。请检查您的 XHR 代码,并尽快更新以使用异步请求。