注意!XMLHttpRequest2 規格最近已變更,禁止在設定 XMLHttpRequest.responseType
時傳送同步要求。這項變更背後的想法是盡可能減少同步 XHR 的使用。
舉例來說,下列程式碼現在會在 Chrome 和 FF 的開發人員頻道版本中擲回 INVALID_ACCESS_ERR
:
var xhr = new XMLHttpRequest();
xhr.responseType = 'arraybuffer';
xhr.open('GET', '/', false); // sync request
xhr.send();
同步 XHR 有許多缺點,但 MSDN 的部落格文章「為何應以非同步方式使用 XMLHttpRequest」對這些問題有詳細的說明。
這對網路來說通常是重大變更,但可能會導致部分仰賴同步行為的現有應用程式發生問題。請查看 XHR 程式碼,並盡快更新為非同步要求。