Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript XHR responseType=';arraybuffer';在Firefox中不起作用_Javascript_Error Handling_Xmlhttprequest_Arraybuffer - Fatal编程技术网

Javascript XHR responseType=';arraybuffer';在Firefox中不起作用

Javascript XHR responseType=';arraybuffer';在Firefox中不起作用,javascript,error-handling,xmlhttprequest,arraybuffer,Javascript,Error Handling,Xmlhttprequest,Arraybuffer,我的应用程序具有发送XMLHttpRequest的功能,其响应类型为“arraybuffer”。 在Chrome、Safari上使用时没有错误,但是Firefox给了我一个错误“InvalidStateError:试图使用不可用或不再可用的对象” 许多教程似乎都有类似的代码。 怎么解决呢?? 需要注意的是,参数“aUrl”不是本地路径。 ex)“已解决。您可以回答自己的问题并获得更多积分。谢谢你!这是英语。基本上,xhr.open()必须放在代码中的xhr.responseType之前-这目前只

我的应用程序具有发送XMLHttpRequest的功能,其响应类型为“arraybuffer”。 在Chrome、Safari上使用时没有错误,但是Firefox给了我一个错误“InvalidStateError:试图使用不可用或不再可用的对象”

许多教程似乎都有类似的代码。 怎么解决呢?? 需要注意的是,参数“aUrl”不是本地路径。
ex)“

已解决。您可以回答自己的问题并获得更多积分。谢谢你!这是英语。基本上,
xhr.open()
必须放在代码中的
xhr.responseType
之前-这目前只影响Firefox;Chrome或Opera很好用。
    function getAudio(aUrl) {
    var deferred = $.Deferred();
    // ajax is not capable of arraybuffer
    var xhr = new XMLHttpRequest();
    xhr.responseType = 'arraybuffer';
    xhr.open('GET', aUrl, true);

    // request succeeded
    xhr.onreadystatechange = function() {
        if (
            (xhr.readyState === 4) && 
            (xhr.status === 200) && 
            (xhr.status !== 404)
            ) {
            audioCtx.decodeAudioData(xhr.response, function(buffer) {
                buf = buffer;
                return deferred.resolve(true);
            });
        } 
    };
    xhr.onerror = function() {
        return deferred.resolve(false);
    };
    xhr.send();
    return deferred.promise();
}