
A chi utilizza WordPress con il nuovo editor Gutenberg sarà forse già capitato di vedere il messaggio di errore: “La risposta non è una risposta JSON valida”.
Questo messaggio può apparire in diversi contesti:
- durante la creazione di una pagina, con il messaggio “Pubblicazione fallita. La risposta non è una risposta JSON valida”;
- durante il salvataggio di un post, con il messaggio “Aggiornamento fallito. La risposta non è una risposta JSON valida”;
- durante la visualizzazione dell’anteprima di un blocco Gutenberg mentre state editando una pagina, con il messaggio: “Errore durante il caricamento del blocco: la risposta non è una risposta JSON valida”.
A questo punto non ci sarà più possibile procedere oltre, fino almeno a che non avremo rimosso l’elemento di disturbo che sta causando il problema.
Cosa può causare l’errore “La risposta non è una risposta JSON valida”
Prima di dirvi come ho risolto io quando mi appariva l’errore “Errore durante il caricamento del blocco: la risposta non è una risposta JSON valida” nella visualizzazione dell’anteprima di un blocco WooCommerce vorrei elencare brevemente alcuni dei contesti più comuni di questo errore, se non altro per farvi sapere che non siete i soli a cui questa cosa sta capitando:
- wordpress è installato in sottocartelle e non in root
- in “Impostazioni Generali” i valori nei campi “indirizzo WordPress” e “indirizzo sito” sono discordanti
- sono presenti contenuti misti in ambiente SSL attivo, alcuni serviti via https, altri solamente via http
- la comunicazione con il database non è possibile a causa di un settaggio troppo vincolante (questo è il caso di cui vi voglio parlare)
Come risolvere l’errore “La risposta non è una risposta JSON valida”
Una soluzione certa al problema sarebbe quella di rimuovere Gutenberg e di procedere con il vecchio Editor Classico di WordPress, ma sinceramente varrebbe la pena di prenderla in considerazione solamente come ultimo disperato tentativo di salvare il salvabile. Dobbiamo quindi cercare di capire perché ci sta succedendo questo.
Se analizziamo i punti indicati sopra però ci accorgiamo che non sempre è un vero malfunzionamento a metterci nei pasticci, ma potremmo essere stati inavvertitamente noi stessi a limitare la comunicazione con il database. Si perché, chi come me utilizza plugin per la sicurezza, deve stare bene attento a come li configura!

Nel mio caso infatti alcuni blocchi Gutenberg di WooCommerce non riuscivano a comunicare con il database esclusivamente a colpa di un settaggio troppo restrittivo che limitava il numero dei caratteri che possono essere utilizzati in un’URL (era attiva l’opzione “Filter Long URL Strings” nei System Tweaks di iThemes Security). Per questo motivo la pagina mi restituiva “Errore durante il caricamento del blocco: la risposta non è una risposta JSON valida” laddove invece avrebbe dovuto esserci la preview del blocco. Va detto che la pagina sul sito si caricava perfettamente ma avere quell’errore nell’admin non era comunque bello. A questo punto a voi la scelta tra lasciare l’errore o abbassare il livello di sicurezza! :-)
Per completezza di informazioni, se non fosse questo il vostro caso e vi trovaste ancora a non sapere come gestire il problema, vorrei consigliarvi che primo tentativo da fare potrebbe essere quello di modificare la struttura dei permalink di WordPress (impostazioni > permalink) e vedere se magicamente la cosa si sistema… a volta funziona!
Se non si è stati abbastanza fortunati da sgavagnarserla cosi a buon mercato allora sarebbe opportuno provare a disabilitare i plugin per capire se ci sono conflitti con il core del sistema, o provare ad utilizzare un tema diverso e vedere se la cosa si risolve.
Nel caso in cui sia un plugin a creare il problema rimane poco da fare se non cercare un plugin alternativo (dopo però aver tentato perlomeno di aggiornare core e plugin all’ultimissima versione disponibile), mentre se abbiamo capito che l’errore è dovuto al tema probabilmente il primo posto dove cercare il colpevole sarebbe il file functions.php, magari disabilitando una funzione alla volta.