JS ArrayBuffer из текста XMLHttpRequest - PullRequest
       27

JS ArrayBuffer из текста XMLHttpRequest

0 голосов
/ 03 февраля 2019

Я пытался использовать XMLHttpRequest, чтобы получить двоичный файл, созданный из структуры Си.

Если я открою файл в шестнадцатеричном редакторе, все символы будут закодированы, как и ожидалось.

Если я добавлю файл на статическую HTML-страницу, используя <input type='file' />, а затем использую FileReader.readAsArrayBuffer(),Я вижу, что ArrayBuffer содержит те же ожидаемые значения.

Но, когда я пытаюсь отправить его через XMLHttpRequest и поместить его responseText в ArrayBuffer, есть несколько символов, которыезаменен на Unicode «символ замены».

Если я использую FileReader.readAsText() с тестом <input type='file' />, я получаю такое же выпадение символов, которое происходит с XMLHttpRequest.responseText.

У меня есть контрольчерез файловый сервер, и я попытался добавить заголовок Content-Type к ответу (application/octet-stream?), но это, похоже, не имеет значения.

Чего мне здесь не хватает, чтобы обеспечитьчто XMLHttpRequest.responseText имеет правильные данные, поэтому ArrayBuffer создается с теми же значениями, что и путь FileReader?

1 Ответ

0 голосов
/ 03 февраля 2019

Конечно, после нескольких часов работы над этим, сразу после того, как я прошёл утку на SO, я нахожу решение.

XMLHttpRequest имеет свойство response - я не должениспользуя responseText.Также я могу установить свойство responseType перед отправкой запроса, чтобы убедиться, что он возвращен в ArrayBuffer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...