繁体   English   中英

NodeJS http 重定向请求

[英]NodeJS http redirect request

我正在创建一个简单的 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 客户端库可能具有您可以启用以自动跟踪重定向的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM