Для опции типа данных к JQuery. Функция Ajax, я не вижу массива байтов или блоба как одна из возможностей.
Как я могу получить его так, мой сервер может возвратить массив байтов как результат вызова Ajax?
Я мог преобразовать блоб для отправки текстовых сообщений, но я иду для компактности.
Править: Блоб не покажут пользователю. Мой JavaScript посмотрит на него и создаст объект из него. Это - приблизительно блоб 50 КБ, и скорость важна, таким образом, я не хочу добавлять любое чрезмерное увеличение размера, если я не имею к.
Править: Мои данные являются массивом целых чисел. Кодирование Base64 является возможностью, но я предпочел бы не добавлять чрезмерное увеличение размера. Если нет способа сделать это, я предполагаю, что был бы просто Base64 кодировать его все же.
РЕДАКТИРОВАТЬ : Основываясь на обсуждении комментариев, я хотел бы пересмотреть свой ответ. Если вы передаете массив целых чисел и можете преобразовать его в этот формат на стороне сервера, оттуда вы должны обязательно преобразовать его в JSON . JSON поддерживает передачу целых чисел, jQuery легко поддерживает получение JSON.
Пример JSON для массива целых чисел:
{
"array": [0, 1, 2, 3, 4, 5]
}
Пример кода Javascript / jQuery для получения этого JSON:
$.getJSON('/url/to/binary/data/returning/json',
function(data) {
// access the array this way:
var array = data.array;
var first = array[0];
// so here you can do whatever your code needs with that array
}
);
Старые предложения
Хотя я согласен с комментариями выше, я считаю, что это должно быть возможно . Существует плагин кодировщика / декодера base64 jQuery , который должен помочь в передаче ваших данных. (Вызывая немного раздувания , это правда). Если вы кодируете свой массив base64, вы сможете его передать.
Если вы просто хотите загрузить двоичные данные (а не отображать их), установите тип MIME вашего ответа на application / octet-stream и укажите имя вложения для соответствующей обработки браузером.
$.get('/url/to/binary/data',
function(data) {
// convert binary data to whatever format you would like to use here with
// an encoded string, have the browser download, call
// a helper function, etc.
}
);
Вы можете рассмотреть другие форматы, которые чаще передаются через HTTP (или с использованием другого транспортного протокола, если необходимо), в зависимости от того, что вы пытаетесь сделать.