Hallo,
Liegt denn &foo=blabla&bar&&blabla&bsp=foo bereits als ein String dem Script vor - oder wird dieser vom Script selber aus verschiedenen Formularfeldinhalten o.ä. zusammengesetzt?
Ja. (aber...)
Bei letzterem solltest du einfach die Parameterwerte URL-gerecht kodieren (encodeURIComponent()), anstatt per RegEx irgendwelche ebenso abenteuerlichen wie aufwendigen Ersetzungen vorzunehmen.
Da hast Du natürlich vollkommen recht.
... leider habe ich beim programmiern ewig übersehen, dass mir "&" einen Fehler einbrockt.
Nun habe ich zig verschiedene meist dynamisch generierte Formularfelder, die unterschiedliche Inhalte haben dürfen (manche auch HTML) und deren Inhalte dann auch gleich in der Seite angezeigt werden (WYSIWIG, (lange) bevor sie dann versendet werden). Deshalb kann ich die "&" nicht vor dem Versenden ersetzen (da sie sonst nicht mehr WYSIWIG angezeigt werden).
Dummerweise versende ich an vielen verschiedenen Stellen im Script dann unterschiedliche Inhalte, wozu ich immer die Komponenten des Post entsprechend aufbaue (z.B.: post= "foo="+etwas.value+"&bar="+nochwas.innerHTML+usw.). Diesen String übergebe ich dann an eine Funktion die den Request ausführt.
Wenn ich wie vorgeschlagen korrigieren will, muss ich es an vielen Stellen im Script ausbessern. Das ist a) ein ziemlichen Aufwand und b) hab ich Angst, dabei entweder wieder einen Fehler zu machen oder nochwas übersehen zu haben und mir damit wieder viel Korrekturaufwand einzuhandeln.
Deshalb wäre mir eine zentrale Stelle, direkt vor dem Request lieber, sollten mir dann noch mehr Sachen auffallen, die Fehler verursachen, kann ich die schnell und einfach mitbehandeln.
(Werd auf die Lösung die seth vorschlägt zurückgreifen.)
Viele Grüße
Michi