Axel Richter: Javascript Variable an URL anhängen

Beitrag lesen

Hallo,

Nehmen wir an, ich habe einen String der Marke "3+4". Was sieht der Standard vor?

Wenn du diese Formel im search-Teil einer HTTP-URL übergeben willst, dann sieht der Standard so aus:
http://www.faqs.org/rfcs/rfc1738.html
...
; HTTP
httpurl        = "http://" hostport [ "/" hpath [ "?" search ]]
...
search         = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
                            ^     ^     ^     ^     ^
                            direkt dürfen also nur diese Zeichen und uchar drin stehen.
...
uchar          = unreserved | escape
...
unreserved     = alpha | digit | safe | extra
                 ^       ^       ^      ^
                 was hierzu zählt, kannst Du selbst nachsehen.
Das "+" zählt zu safe, hat aber im Datenstrom bei der Übertragung von Formulardaten eine besondere Bedeutung http://de.selfhtml.org/cgiperl/intro/formularverarbeitung.htm#datenstrom, muss also, wenn es diese Bedeutung nicht hat, trotzdem escaped werden.
...
escape         = "%" hex hex
...

HexHex steht für den hexadezimalen ASCII-Code des Zeichens. Bei "+" ist das %2B.
http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

Um das zu testen, erstelle Dir ein Formular mit einem INPUT type="text" action="#" und method="GET". Trage ins Eingabefeld die Formel ein, sende das Formular ab und schau in der aufgerufenden URL nach, was der Browser draus gemacht hat. Gib auch mal "3+4 4+5" ein, um zu sehen, wann ein "+" unescaped verwendet wird.

viele Grüße

Axel