XMLHttpRequest.send(Int8Array)POST仅在Firefox中失败

时间:2013-01-14 23:54:12

标签: firefox xmlhttprequest send

我正在尝试使用带有XmlHttpRequest的{​​{1}}对象作为数据发布数据(文件的一大块),但它在FF18中失败,但在IE 10&铬。

这是我的JS:

Int8Array

我在Firefox中使用Firebug来调试我的JS,当我在 Net 标签下观看活动时,没有任何东西出现在这个XHR调用中。好像它从未被调用过。

此外,在此调用之前,我为“Ajax / PostChunkSize”调用jQuerys //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); 方法,并且在所有浏览器中都可以正常工作,尽管它不会对其数据使用.ajax()。我不能使用Int8Array,因为.ajax()不支持.ajax()个对象,据我所知。

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

发送类型化数组(而不是数组缓冲区)的能力是最新增加的通量XMLHttpRequest2规范。它将在4月左右在Firefox 20中得到支持(参见https://bugzilla.mozilla.org/show_bug.cgi?id=819741),但同时如果你的Int8Array覆盖了它的整个缓冲区,那么send(dataObj.buffer)应该有效......

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