Общепринятый ответ - то, что Вы не можете. Однако там монтирует доказательство, что это не верно на основе существования проектов, которые читают в типах данных, которые не являются основными типами HTML. Некоторые проекты, которые делают это, являются версией JavaScript ProtoBuf и Дымовой завесы.
Дымовая завеса является интерпретатором флэш-памяти, записанным в JS поэтому, если не возможно достигнуть байты непосредственно, как эти проекты работают вокруг этого? Источник к Дымовой завесе может быть найден здесь. Я просмотрел его, но с JS, не являющимся моим основным языком прямо сейчас, решение ускользает от меня.
Они оба выглядят как использование String
(в данном случае responseText
из XMLHttpRequest
) непосредственно как набор байтов.
data = ... // a binary string
bytes = [];
for ( i = 0; i < data.length; i++ )
{
// This coverts the unicode character to a byte stripping
// off anything past the first 8 bits
bytes[i] = data.charCodeAt( i ) & 0xFF;
}
Protobuf творит всю свою магию с полем XMLHttpRequest.requestText, которое является просто строкой DOMString.