From 5c32fcb1d133381e279125e7836c07cec6fbed00 Mon Sep 17 00:00:00 2001 From: Kees van Kempen Date: Wed, 28 Feb 2024 00:20:06 +0100 Subject: [PATCH] fix(songs): handle HTTP 413 and remove redundant .json() calls Closes #76 --- marietje/songs/templates/songs/upload.html | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/marietje/songs/templates/songs/upload.html b/marietje/songs/templates/songs/upload.html index b28f8e7..c2d734e 100644 --- a/marietje/songs/templates/songs/upload.html +++ b/marietje/songs/templates/songs/upload.html @@ -179,13 +179,14 @@ }).catch(e => { console.log(e); if (e instanceof Response) { - try { - e.json().then(data => { - this.fileObjects[i].error_message = data.errorMessage; - this.fileObjects[i].success = false; - }); - } catch { - this.fileObjects[i].error_message = "An exception occurred while uploading this file, please try again."; + // Intercept an HTTP 413 error (entity too large), as this might + // be thrown by a (reverse) proxy server and its payload is not + // nicely formatted as the code below expects. + if (e.status === 413) { + this.fileObjects[i].error_message = "The song you tried to upload is too large in size. (HTTP 413 error)"; + this.fileObjects[i].success = false; + } else { + this.fileObjects[i].error_message = `${e.statusText} (${e.status})`; this.fileObjects[i].success = false; } } else {