El controlador de errores predeterminado en dropzone.js es el siguiente y contiene una implementación de error predeterminada como se muestra a continuación:
https://github.com/dropzone/dropzone/blob/main/src/options.js#L4
// Called whenever an error occurs // Receives `file` and `message` error(file, message) { if (file.previewElement) { file.previewElement.classList.add("dz-error"); if (typeof message !== "string" && message.error) { message = message.error; } for (let node of file.previewElement.querySelectorAll( "[data-dz-errormessage]" )) { node.textContent = message; } } },Desafortunadamente, el código anterior tiene el comportamiento no deseado en el que si el servidor devuelve una respuesta que no es 2xx, el HTML de esa respuesta se muestra como un error, lo que es incomprensible para los usuarios finales y los hace entrar en pánico.
¿Cómo reemplazo la devolución de llamada anterior de tal manera que el código anterior se elimine por completo en tiempo de ejecución?
Lo siguiente no funciona, más específicamente, aún se alcanza un punto de interrupción en el código anterior, y el texto de error HTML aún está presente:
let dropzone = new Dropzone(document.body, { // Make the whole body a dropzone url: "/upload/url", // Set the url previewsContainer: "#previews", // Define the container to display the previews uploadMultiple: true, autoProcessQueue: true }); dropzone.on("error", (file, response, xhr) => { console.log("An error has occurred: " + file + response + xhr.status + xhr.statusText); });