0

I have a problem with my post request in javascript.

I have the following code for sending the post request

    var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() 
        {
            if (this.readyState == 4 && this.status == 200) 
            {   
                //stuff
            }
        };
        xhttp.open("POST", "/deleteUser", true);
        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhttp.send("username=" + username);

And in my node.js express application i receive it like this

    var username = req.body.username;

Now this works perfect with normal characters (numbers and letters). But when i tried

>df)(*&&^%$

as username it gets cut off to

    >df)(* 

I suspect it is because of the &.

My question: How do i prevent it from getting cut off.

Thanks in advance!

Jan
  • 560
  • 6
  • 19
  • More info here: http://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data – ayxos Mar 22 '17 at 12:10

1 Answers1

3

You need to convert the username parameter into a URI safe string, using xhttp.send("username="+encodeURIComponent(username));

devnull69
  • 16,402
  • 8
  • 50
  • 61