I’m trying to post data (a chunk of a file) using a XmlHttpRequest object with an Int8Array as the data but it fails in FF18, but works perfect in IE 10 & Chrome.
Here’s my 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);
I use Firebug in Firefox to debug my JS and when I watch the activity under the Net tab, nothing ever shows up for this XHR call. As if it was never called.
Also, prior to this call, I call jQuerys .ajax() method for “Ajax/PostChunkSize” and that works fine in all browsers, although that doesn’t use an Int8Array for its data. I can’t use .ajax() for this since .ajax() doesn’t support Int8Array objects, as far as I know.
Does anyone know why Firefox doesn’t even attempt to send this? Any questions, please ask.
Thanks in advance.
The ability to send a typed array (as opposed to an arraybuffer) is a recent addition to the in-flux XMLHttpRequest2 spec. It’ll be supported in Firefox 20 in April or so (see https://bugzilla.mozilla.org/show_bug.cgi?id=819741 ) but in the meantime if your Int8Array covers its entire buffer, doing
send(dataObj.buffer)should work…Note that per the old spec the code above should have sent a string that looks something like “[object Int8Array]” instead of throwing; you may want to check to make sure that other browsers really are sending the array data and not that string.