设置HttpRequest的responseType

时间:2016-02-17 15:37:53

标签: javascript xmlhttprequest

我想这样做:

function loadSound(url) {
    var request = new XMLHttpRequest();
    request.open('GET', url, true);
    request.responseType = 'arraybuffer';

    // Decode asynchronously
    request.onload = function() {
        context.decodeAudioData(request.response, function(buffer) {
            sound= buffer;
        }, onError);
    }
    request.send();
}

但我收到了这个错误:

  

Uncaught InvalidAccessError:无法在'XMLHttpRequest'上设置'responseType'属性:无法更改从文档发出的同步请求的响应类型。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这是规范定义的内容:

  

注意:从Gecko 11.0(Firefox 11.0 / Thunderbird 11.0 / SeaMonkey 2.8)以及WebKit build 528开始,这些浏览器在执行同步请求时不再允许您使用responseType属性。尝试这样做会引发NS_ERROR_DOM_INVALID_ACCESS_ERR异常。这一变化已经提交给W3C进行标准化。

来自:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest