Con un formato testo libero (es. textarea) mi è capitato il seguente problema.
Il codice javascript lato client effettua un controllo sulla numerosità dei caratteri e lato server allo stesso modo si verifica di non eccedere la quota per evitare problemi sul db.
Il massimo impostabile è 1000 caratteri.
Solo che i due valori non collimano sempre.
In presenza di testi copiati e incollati da fonti esterne (siti di giornali etc.) succede che il frontend passa 1000 caratteri ma il back end se ne trova di più.
Indagando un pò il problema ho visto che è dovuto ai caratteri di a capo, che nella request http sono identificati dallo /r.
Quindi ogni carattere di a capo mi viene a contare per 2.
Ho risolto inserendo una replace lato java, in questo modo:
x.replaceAll("\r", "");
Il codice javascript lato client effettua un controllo sulla numerosità dei caratteri e lato server allo stesso modo si verifica di non eccedere la quota per evitare problemi sul db.
Il massimo impostabile è 1000 caratteri.
Solo che i due valori non collimano sempre.
In presenza di testi copiati e incollati da fonti esterne (siti di giornali etc.) succede che il frontend passa 1000 caratteri ma il back end se ne trova di più.
Indagando un pò il problema ho visto che è dovuto ai caratteri di a capo, che nella request http sono identificati dallo /r.
Quindi ogni carattere di a capo mi viene a contare per 2.
Ho risolto inserendo una replace lato java, in questo modo:
x.replaceAll("\r", "");
Nessun commento:
Posta un commento