同期 XHR の廃止

ご案内: XMLHttpRequest2 仕様が最近変更され、XMLHttpRequest.responseType が設定されている場合に同期リクエストの送信が禁止されました。この変更の目的は、可能な限り同期 xhr の使用を軽減することです。

たとえば、次のコードは、Chrome と FF のデベロッパー チャンネル ビルドで INVALID_ACCESS_ERR をスローします。

var xhr = new XMLHttpRequest();
xhr.responseType = 'arraybuffer';
xhr.open('GET', '/', false); // sync request
xhr.send();

WebKit のバグMozilla のバグをご覧ください。

同期 XHR はさまざまな理由で望ましくないものです。MSDN のブログ投稿「XMLHttpRequest を非同期で使用すべき理由」では、この問題について詳しく説明しています。

これはウェブにとって一般に大きな変更ですが、同期動作に依存していた既存のアプリが破損する可能性があります。XHR コードを確認し、非同期リクエストを使用するようにできるだけ早く更新してください。