XMLHttpRequest og plustegn
Her forleden, da jeg sad og kiggede på side med ajax, jeg lavede for et stykke tid siden, opdagede jeg, at det ikke virkede helt. Efter lidt kiggen på det, fandt jeg grunden, som er at plustegnene blev sendt til serveren (gennem XMLHttpRequest-objektet) som mellemrumstegn.For at illustrere og teste har jeg lavet den her side: http://hells.dk/plustest.asp
Hvis man trykker på test-knappen, sendes værdien af formfeltet til serveren, som så sender det uændret tilbage, hvorefter det vises med en alertboks til brugeren. Jeg har foretaget en test, der viser at plustegnene omformes før de kommer til serveren.
Koden, der bruges til at sende formfeltets værdi, er:
req.open("POST", "/plustest.asp", true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send("tekst="+escape(form.tekst.value));
hvor form er form-elementet.
Så spørgsmålet er, om der er nogen her, der ved, hvorfor det sker, samt hvad man kan gøre for at afhjælpe det.