I have a snippet, that requests an image from a URL:
var toDataURL = url => fetch(url, {mode: "no-cors"})
.then(response => response.blob())
.then(blob => new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onloadend = () => resolve(reader.result)
reader.onerror = reject
reader.readAsDataURL(blob)
}))
toDataURL('https://www.google.hu/images/branding/googlelogo/2x/googlelogo_color_120x44dp.png')
.then(dataUrl => {
console.log('RESULT:', dataUrl)
})
Code snippet is taken from this thread
This piece of code requests the google logo and it works just fine. I can see the successful image response in the network tab, I can see the image itself, also the base64 code is returned to the console as it should (you can try it by copying and pasting it to a Chrome console)
However, if I change the url to this: https://images.dog.ceo/breeds/husky/n02110185_12748.jpg
I don't get the base64 code back in the console. The request is successful, it is visible in the response, but the base64 is not returned.
I tried it with several images, with png
s most of the time it works, with jpeg
s never.
Are there some additional settings in the FileReader
api I'm missing?