Получить изображение с помощью jQuery.ajax () и декодировать его в base64

Что я хочу сделать:

HTTP-GET изображение (jpeg) с помощью jQuery.ajax () с защищенного сервера с базовой аутентификацией. кажется, что я получаю некоторые данные изображения, оно должно быть двоичным. я хочу преобразовать это в base64, потому что тогда я могу вставить это как изображение в мой HTML следующим образом:

     $("#image").attr('src', 'data:image/jpeg;base64,' + base64encode(data));

вызов ajax выглядит так:

            $.ajax({
                url: "someurltoajpeg",
                type: "GET",
                headers: {
                    "Authorization" : "Basic " +  btoa("user:pw")
                },
                xhrFields: {
                    withCredentials: true
                }
            }).done(function( data, textStatus, jqXHR ) {
                $("#image").attr('src', 'data:image/jpeg;base64,' + base64encode(data));
            }).fail(function( jqXHR, textStatus, errorThrown ) {
                alert("fail: " + errorThrown);
            });

функция base64encode выглядит так:

        function base64encode(binary) {
            return btoa(unescape(encodeURIComponent(binary)));
        }

я получил эту функцию отсюда:Получение содержимого двоичного файла с использованием Javascript, кодирование base64 и обратное декодирование с использованием Python

там он говорит, что это работает для него. но в моем случае атрибут src моего изображения изменяется, и вставляются некоторые очень длинные данные, но появляется только очень маленький символ для этого изображения. я могу сохранить это «изображение», которого даже нет, и когда я его открываю, программа просмотра изображений говорит, что это не файл JPEG. это не ошибка, вызванная определенным образом или той же самой политикой происхождения. кто-нибудь есть решение этого? Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос