Pobierz Image używając jQuery.ajax () i zdekoduj go do base64

Co chcę robić:

HTTP-GET obraz (jpeg) za pomocą jQuery.ajax () z zabezpieczonego serwera podstawowego. wygląda na to, że dostaję dane obrazu, musi być binarny. chcę to przekonwertować na base64, ponieważ wtedy mogę wstawić to jako obraz w moim html w ten sposób:

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

wywołanie ajax wygląda tak:

            $.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);
            });

funkcja base64encode wygląda tak:

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

mam tę funkcję tutaj:Odzyskiwanie zawartości pliku binarnego za pomocą JavaScript, base64 koduje go i dekoduje go za pomocą Pythona

tam mówi, że to dla niego działa. ale w moim przypadku zmieniany jest atrybut src mojego obrazu i wstawiane są bardzo długie dane, ale pojawia się tylko bardzo mały symbol, aby obraz był widoczny. mogę zapisać ten „obraz”, nawet tam nie ma, a kiedy go otwieram, moja przeglądarka obrazów mówi, że nie jest to plik jpeg. nie jest to błąd spowodowany konkretnym obrazem ani tą samą polityką pochodzenia. czy ktoś ma na to rozwiązanie? dzięki

questionAnswers(2)

yourAnswerToTheQuestion