Making post request from redirection in node.js

I am trying to redirect to another URL from node js by using response.writeHead method

response.writeHead(301, {Location : <redirecturl>})

I need to have this redirection is being executed by POST method, however it is always executed by GET. What is the way that the redirection can be made as a POST request.

A redirect by default sends a GET request. According to the HTTP spec, a 301 redirection means sending a GET request. If you want to redirect with the same method (POST), you can try doing a 307 redirect instead.

There is no difference between redirection in both GET and POST methods. Both method should work find. Better you can your expressjs framework in which it is

 res.redirect('http://example.com');

Be careful, when using status code 301 which means Moved Perman­ently. Once browser gets 301 status code, it will directly try the redirected URL from the next time.

Without seeing more of your code, I believe this is what you are describing: The client has made a request to your application using an HTTP method (get, post, etc.) You are responding to that request by sending back a 301 error and a new URL (redirecturl) The client then decides to implement a get request for the redirecturl.

You can't change how a client responds to a 301. That is out of your control and it is normal for browsers to initiate a get for the redirecturl.

You could initiate a post request from your server to the redirecturl. You could send back a webpage which would then submit a post request from the client.

What are you trying to achieve?