Tengo una cadena JSON extremadamente grande que necesito enviar a mi servidor. Encontré payloadTooLargeError cuando intenté enviar la cadena JSON directamente.
Entonces, decidí enviarlo como un blob en su lugar. Pero desafortunadamente, después de crear el blob, este devuelve una cadena vacía.
Así es como creé el blob:
let largeContentPayload = { data: { 'batch_id': batchId, content: extremelyLargeJSON } }; const largeContentStringified = JSON.stringify(largeContentPayload); const largeContentBlob = new Blob([largeContentStringified], { type: 'application/json;charset=utf-8' }); console.log(largeContentBlob); //This is only returning size and type, the JSON string is not there const blobUrl = URL.createObjectURL(largeContentBlob); let requestBody = new FormData(); let blob = await fetch(blobUrl).then(r => r.blob());¿Como puede ésto ser resuelto?
De manera predeterminada, si intenta registrar un objeto de blob en la consola, solo mostrará el size y el type de ese blob .
Si desea ver el contenido de texto del blob , puede usar el método de text en el blob.
Ejemplo
async function createBlob() { const obj = { hello: 'world' }; const blob = new Blob([JSON.stringify(obj, null, 2)], { type: 'application/json' }); console.log(blob); const text = await (new Response(blob)).text(); console.log(text); } createBlob();