Draft
This page is not complete.
Deprecated since Gecko 31 (Firefox 31 / Thunderbird 31 / SeaMonkey 2.28)
This feature has been removed from the Web standards. Though some browsers may still support it, it is in the process of being dropped. Avoid using it and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
The XMLHttpRequest.sendAsBinary() method is a variant of the send()
method that sends binary data.
send(Blob data)
method can be used instead.void sendAsBinary( in DOMString body );
This method, used in conjunction with the readAsBinaryString
method of the FileReader
API, makes it possible to read and upload any type of file and to stringify the raw data.
body
sendAsBinary()
polyfillSince sendAsBinary()
is an experimental feature, here is a polyfill for browsers that don't support the sendAsBinary()
method but support typed arrays.
/*\ |*| |*| :: XMLHttpRequest.prototype.sendAsBinary() Polyfill :: |*| |*| https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#sendAsBinary() |*| \*/ if (!XMLHttpRequest.prototype.sendAsBinary) { XMLHttpRequest.prototype.sendAsBinary = function (sData) { var nBytes = sData.length, ui8Data = new Uint8Array(nBytes); for (var nIdx = 0; nIdx < nBytes; nIdx++) { ui8Data[nIdx] = sData.charCodeAt(nIdx) & 0xff; } /* send as ArrayBufferView...: */ this.send(ui8Data); /* ...or as ArrayBuffer (legacy)...: this.send(ui8Data.buffer); */ }; }
send()
: an ArrayBuffer
(ui8Data.buffer
– the commented code) or an ArrayBufferView
(ui8Data
, which is a typed array of 8-bit unsigned integers – uncommented code). However, on Google Chrome, when you try to send an ArrayBuffer
, the following warning message will appear: ArrayBuffer is deprecated in XMLHttpRequest.send(). Use ArrayBufferView instead.
Another possible approach to send binary data is the StringView
Non native typed arrays superclass in conjunction with the send()
method.
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/sendAsBinary