Есть ли способ отправить двоичные данные с объектом XMLHttpRequest? - PullRequest
0 голосов
/ 07 декабря 2010

Я пытаюсь отправить двоичный фрагмент с XMLHttpRequest

var xhr = new XMLHttpRequest();
var bindata = 0x0f0f;

xhr.open("POST", "binary_reader.php");

xhr.send(bindata);

Но этот подход не работает. Я пытался предоставить Content-type: application / octet-stream , Content-encoding заголовки для xhr , и они тоже не работают. Я подозреваю, что нет никакого способа составить запрос такого рода.

Буду признателен за любую помощь.

Ответы [ 4 ]

2 голосов
/ 10 января 2019

XMLHttpRequest.sendAsBinary устарел. Ссылка

Как указано MDN , вы можете напрямую отправлять двоичный типизированный массив:

var myArray = new ArrayBuffer(512);
var longInt8View = new Uint8Array(myArray);

// generate some data
for (var i=0; i< longInt8View.length; i++) {
  longInt8View[i] = i % 256;
}

var xhr = new XMLHttpRequest;
xhr.open("POST", url, false);
xhr.send(myArray);
1 голос
/ 03 февраля 2011

W3C ввел тип BLOB-объектов для XMLHttpRequest в последней спецификации . В настоящее время я не видел никакой реализации, но в ближайшем будущем это определенно способ загрузки и выгрузки двоичных данных с XMLHttpRequest.

1 голос
/ 31 декабря 2010

Да, вы можете отправлять двоичные данные, используя XHR.Все, что вам нужно сделать, это установить соответствующие заголовки и mime-тип и вызвать метод sendAsBinary вместо простого метода send.Например:

var req = new XMLHttpRequest();  
req.open("POST", url, true);  
// set headers and mime-type appropriately  
req.setRequestHeader("Content-Length", 741);  
req.sendAsBinary(aBody);
0 голосов
/ 11 января 2014

Раздел «Обработка двоичных данных» здесь описывает, как отправлять и получать двоичные данные через XMLHttpRequest.

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