DOM 仅在 Safari 中发生 XHR 请求的异常 11

DOM Exception 11 on XHR request occurring only in Safari

我有一个非常简单的函数,它使用 xhr 请求下载文件块,如下所示:

var blobXHR = new XMLHttpRequest();

//api.media.chunkURL() returns the correct URL for each chunk
blobXHR.open("GET", api.media.chunkURL({
            fileId: fileID,
            chunkId: chunkNumber
            }));

blobXHR.responseType = "arraybuffer";

blobXHR.onerror = function (e) {
            console.log("Error: ", e);
            };

var arrayBuffer;
blobXHR.onload = function (e) {
            arrayBuffer = blobXHR.response;
            };

blobXHR.send();

现在,使用 Chrome、Firefox 和几乎所有 Android 浏览器,此下载功能都可以毫无障碍地运行。不幸的是,当使用任何基于 Safari 或 iOS 的东西时,我在 blobXHR.onerror() 中得到一个非常模糊的错误。当我将此错误输出到控制台时,我在 "e.currentTarget.responseText" 下收到此响应:

Error: InvalidStateError: DOM Exception 11

我查了很多与此类似的问题,但似乎没有任何效果。为什么我只使用 Safari/iOS 个浏览器就会遇到这种情况?

编辑:这是我在 onerror():

中 console.log(blobXHR) 时得到的结果

这可能是 CORS 问题。请确保您的服务器已正确配置以允许此操作:

http://enable-cors.org/server.html

另请注意,Safari 不允许本地主机用于 CORS。