The data you are sending looks correct, but it looks like there are two errors in how the request is formed.
First, when you construct the form data part of the message make sure that you URL encode all of the values, e.g. if the redirect_uri value contains an &, that will cause you problems unless it is URL encoded.
Second, while you are correctly doing a POST instead of a GET, you are still sending the parameters in the query string instead of in the body of the request. Move them to the body, set the content-type to 'application/x-www-form-urlencoded' and you should be set.
(it looks like JavaScript, but I'm not sure which libraries you are using so I didn't provide sample code)