Der Bug zeigt sich beim Anhängen einer <textarea> bzw. dessen Inhalt dadurch daß die Zeilenende-Controls als %0A kodiert werden. Richtig jedoch wäre %0D%0A.
Code zum Nachvollziehen:
var f = new FormData(e.target);
var q = new URLSearchParams();
for (const [key, val] of f.entries()) {
q.append( key, val );
}
console.log( q.toString()+"\n"+$(e.target).serialize() );
Ergebnis Vergleich mit jQuery in der Console:
text=eins%0Azwei%0Adrei%0Avier%0A
text=eins%0D%0Azwei%0D%0Adrei%0D%0Avier%0D%0A
Und so wie Recherchen zeigen, gibts da noch mehr schöne Bugs mit URLSearchParams. Wobei ich mir natürlich auch die Frage stelle, warum man da eine neue Klasse gebaut hat, anstatt diese der bereits vorhandenen Klasse URL unterzustellen.
Nur zur Info.
Last edited: 2020-01-16 12:46:31 +0100 (CET)