Почему url blob постоянно выдает null

Мне нужно с файла blob получить url и записать в атрибут src тега img

 let img=new Image();
            img.src="https://img2.akspic.ru/previews/0/9/8/9/6/169890/169890-legkovyye_avtomobili-lambordzhini-sportkar-drifting-avtosport-x750.jpg"
             let blobUpload = new Blob([img], {type: 'image/jpg'}); 

Дальше достаю url и добавляю для картинки которая в разметке src

 let imgUrl=URL.createObjectURL(pic);
   document.querySelector("img").setAttribute("src",imgUrl)

В итоге ничего не получается так как url этот постоянно выдает в консоле постоянно null

blob:null/b9a0a7e1-f31a-425a-84c3-8d653919a3cb

Не могу понять почему так, я уже пробовал и файлы с пк в src добавлять но все так же


Ответы (1 шт):

Автор решения: Garric

blob:null означает, что страница браузера, которая получила двоичные данные для формирования собственной браузерной url ссылки на полученные с сервера двоичные данные, сама не имела собственного url. У меня это произошло когда методами cors файл .html открытый как файл 'file:///C:/XXX', а не localhost, получил двоичные данные от сервера и пытался сформировать URL для blob, хотя сама страница, его, (url) не имела. Как следствие, сформировался null. Блоб не работает. Но этот же самый скрипт, открытый на http сервере, имеет url http:/localhost и работает без проблем.

Проще. При формировании blob, страница браузера не имела собственного url адреса.

Здесь есть пример формирования подобного blob. https://stackoverflow.com/questions/28377733/url-createobjecturl-returns-a-blob-with-null-prepended-eg-blobnull-12415-63

→ Ссылка