0

我正在尝试使用XmlHttpRequest带有作为数据的对象发布数据(文件的一部分) Int8Array,但它在 FF18 中失败,但在 IE 10 和 Chrome 中完美运行。

这是我的 JS:

//dataObj is an Int8Array with approx. 33,000 items
var oReq = new XMLHttpRequest();
oReq.open("POST", "Ajax/PostChunk");
oReq.onload = function (oEvent) {
    //
};

oReq.send(dataObj);

我在 Firefox 中使用 Firebug 来调试我的 JS,当我在Net选项卡下观看活动时,这个 XHR 调用没有任何显示。好像它从未被调用过。

此外,在此调用之前,我.ajax()为“Ajax/PostChunkSize”调用了 jQuerys 方法,该方法在所有浏览器中都可以正常工作,尽管它的数据不使用 an Int8Array。据我所知,我不能使用.ajax()它,因为.ajax()它不支持对象。Int8Array

有谁知道为什么 Firefox 甚至不尝试发送这个?有任何问题,请提出。

提前致谢。

4

1 回答 1

0

发送类型化数组(相对于数组缓冲区)的能力是最新加入的 in-flux XMLHttpRequest2 规范。它将在 4 月左右在 Firefox 20 中得到支持(请参阅https://bugzilla.mozilla.org/show_bug.cgi?id=819741),但与此同时,如果您的 Int8Array 覆盖了其整个缓冲区,send(dataObj.buffer)那么应该可以...

请注意,根据旧规范,上面的代码应该发送一个类似于“[object Int8Array]”的字符串,而不是抛出;您可能需要检查以确保其他浏览器确实在发送数组数据而不是该字符串。

于 2013-01-15T00:16:41.130 回答