![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
wahrscheinlich kommt diese Frage etwas häufiger vor. Ich habe eine Applikation, in der der JavaScript Client (Browser) mit einem aynchronen HTTP-Request (Methode = 'post'; implementiert in Prototype.js) Foreneinträge an einen Server schickt. Das klappt so weit auch ganz gut, bis die ersten Einträge mit einem Semikolon ( an den Server gesendetwurden. Dabei werden wohl alle hinter dem ';' stehenden Parameter verworfen. Nun dachte ich mir, escape ich die Parameter client-seitig mit der escape() Funktion. Klappt auch wunderbar, mit dem Semikolon, leider funktioniert es nun nicht mehr mit den Umlauten, die vorher wunderbar funktioniert haben. Ich habe jetzt den Verdacht, das die escape()-Funktion nicht so arbeitet, wie ich mir das erhoffen würde. Meine Lösung wäre jetzt, alle Zeichen in "!*'();:@&=+$,/?%#[]" selbst in %21 etc. umzusetzen. Kann aber nicht wirklich glauben, das ich der erste bin, der über das Problem stolpert. |
#3
| |||
| |||
|
|
Was genau willst du an der Server senden, wie willst du kodieren, als application/x-www-form-urlencoded, als application/xml oder text/xml, als JSON? |
|
Fuer application/x-www-form-urlencoded kannst du encodeURIComponent verwenden, also etwa xmlhttp.send('arg1=' + encodeURIComponent('Jürgen;Jörg;')) auf dem Server musst du beachten, das die Kodierung als application/x-www-form-urlencoded, aber mit charset=UTF-8 erfolgt ist und entsprechend ausgewertet werden muss. |
![]() |
| Thread Tools | |
| Display Modes | |
| |