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

标签 javascript ios safari xmlhttprequest

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

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) 时得到的结果:

BlobXHR state on onerror()

最佳答案

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

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

另请注意,Safari 不允许使用 localhost 进行 CORS。

关于javascript - 仅在 Safari 中发生的 XHR 请求的 DOM 异常 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34076400/

相关文章:

javascript - 滚动时根据高度更改不透明度

javascript - 导航到其他页面时 JS 菜单停止工作

ios - Xcode、解析崩溃报告、未创建 dSYM 文件

ios - UITableViewCell 中的图形故障

javascript - 在 Safari 中输入一个字符后,以 jQuery 为中心的文本框失去焦点

jquery - CSS 过渡在 Safari 中不起作用(第一次)

javascript - 使隐藏字段不再为必填项

javascript - 使用 Extendscript 在 InDesign 中放置文件时指定编码

ios - 我应该对这个 ImageView 应用什么约束?

html - Safari 表格定位(负边距)