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。
我有一个非常简单的函数,它使用 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。