NodeJS http重定向请求



我正在创建一个简单的NodeJs服务器。一旦这个服务器接到一个调用,它就会在后台做一些事情,用户应该被重定向到另一个页面。我使用的是:

const http = require("http");
const requestListener = function (req, res) {
// do something
res.end(); // This ends the request
// Instead of ending the request (res), I want to redirect it to a specific url
}

server = http.createServer(requestListener);
server.listen(port, () => {
});

如何为http模块做到这一点?

要使用纯http模块发送重定向响应,只需要制造正确类型的重定向响应并将其作为响应发送即可。重定向响应具有3xx状态代码,并设置location标头,通常不包括正文。

res.setHeader('location', 'http://wwww.google.com');
res.statusCode = 302;
res.end();

请记住,重定向响应只是对客户端的指示/建议,他们应该去其他地方获取他们请求的内容。这取决于客户端是否真的遵循重定向。在许多情况下,浏览器会自动跟踪重定向。但是,使用基于浏览器的Javascript中的XMLHttpRequest的Ajax调用不会自动跟随重定向。相反,接收响应的脚本必须检查3xx的状态代码,读取location标头,并向新的http url发出新的请求。其他http客户端库可能具有您可以启用的自动跟踪重定向的功能。

最新更新