@freeeeez

Как подгрузить изображение через jQuery?

Необходимо заменить номера на сайте картинками. Подключил Intervention Image, все работает, номер выводится картинкой. Теперь его надо по клику на ссылку "Показать номер" подгрузить. Загружаю:
$('.phone-loader').on('click',function (e) {
e.preventDefault();
$.ajax({
url:"/ajax/getPhone",
type:"POST",
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
data:{ 'id': $(this).data('id') },
success: function(data){
$('#main-phone').attr('src', 'data:image/jpeg;base64,' + data);
}
});
});

Получаю data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==

Но картинка не загружается. Пробовал и PNG и менять c base64_encode - не работает. В чем причина?
  • Вопрос задан
  • 328 просмотров
Решения вопроса 1
@freeeeez Автор вопроса
Как обычно, задал вопрос и потом сам нашел решение.
Ошибка была в том, что data:image/png;base64, я подставлял в jQuery, а надо было сразу из контроллера возвращать ответ:
$base64 = 'data:image/png;base64,' . base64_encode($img); return $base64;

, а в jQuery в ответе вставлять просто:
$('#phone').html('<img src="' + data+'" />');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@GrimJack
Онлайн декодер нормально раскодировал, только я не задавал ему формат файла и получил внутри src атрибута это:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxglj
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект