Korzystam z aplikacji reagujących na aplikacje na Androida. I użyj axios
jako biblioteki http. Gdy próbuję wysłać Blob
obiektu poprzez HTTP POST będę się poniżej błędu:Mam "Jedno ze źródeł do przypisania ma przeliczalny klucz w łańcuchu prototypów" w aplikacji natywnej React
HTTP Failure in Axios TypeError: One of the sources for assign has an enumerable key on the prototype chain. Are you trying to assign a prototype property? We don't allow it, as this is an edge case that we do not support. This error is a performance optimization and not spec compliant.
Poniżej znajduje się kod Kiedyś dodać obiekt blob na formularzu danych:
let data = new FormData()
data.append('image', decodeBase64Image(image));
poniżej jest kod do dekodować obraz base64. A poniżej kod działa dobrze w jednej z moich aplikacji na stronie.
export const decodeBase64Image = (dataURI) => {
let byteString;
if (dataURI === undefined) {
return undefined
}
if (dataURI.split(',')[0].indexOf('base64') >= 0)
byteString = atob(dataURI.split(',')[1]);
else
byteString = unescape(dataURI.split(',')[1]);
// separate out the mime component
let mimeString = ''
if (dataURI.split(',')[0] != undefined && dataURI.split(',')[0].split(':')[1] != undefined) {
mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]
}
// write the bytes of the string to a typed array
let ia = new Uint8Array(byteString.length);
for (let i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
return new Blob([ia], {type: mimeString});
}