I load some binary data using
$http.post(url, data, { responseType: \"arraybuffer\" }).success(
function (data) { /* */ });
I
@smkanadl's answer assumes that the response is ASCII. If your response is in another encoding, then that won't work.
Modern browsers (eg. FF and Chrome, but not IE yet) now support the TextDecoder
interface that allows you to decode a string from an ArrayBuffer
(via a DataView
).
if ('TextDecoder' in window) {
// Decode as UTF-8
var dataView = new DataView(data);
var decoder = new TextDecoder('utf8');
var response = JSON.parse(decoder.decode(dataView));
} else {
// Fallback decode as ASCII
var decodedString = String.fromCharCode.apply(null, new Uint8Array(data));
var response = JSON.parse(decodedString);
}