JQuery. Ajax - мой сервер может возвратить блоб данных?

Для опции типа данных к JQuery. Функция Ajax, я не вижу массива байтов или блоба как одна из возможностей.

Как я могу получить его так, мой сервер может возвратить массив байтов как результат вызова Ajax?

Я мог преобразовать блоб для отправки текстовых сообщений, но я иду для компактности.

Править: Блоб не покажут пользователю. Мой JavaScript посмотрит на него и создаст объект из него. Это - приблизительно блоб 50 КБ, и скорость важна, таким образом, я не хочу добавлять любое чрезмерное увеличение размера, если я не имею к.

Править: Мои данные являются массивом целых чисел. Кодирование Base64 является возможностью, но я предпочел бы не добавлять чрезмерное увеличение размера. Если нет способа сделать это, я предполагаю, что был бы просто Base64 кодировать его все же.

7
задан Kyle 26 March 2010 в 14:11
поделиться

1 ответ

РЕДАКТИРОВАТЬ : Основываясь на обсуждении комментариев, я хотел бы пересмотреть свой ответ. Если вы передаете массив целых чисел и можете преобразовать его в этот формат на стороне сервера, оттуда вы должны обязательно преобразовать его в 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 (или с использованием другого транспортного протокола, если необходимо), в зависимости от того, что вы пытаетесь сделать.

3
ответ дан 7 December 2019 в 16:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: