“错误[ERR_HTTP_HEADERS_SENT]:在尝试重定向

时间:2018-02-19 10:29:24

标签: javascript express socket.io

我正在尝试设置一个人,如果一个人输入了正确的密钥(1234),但当他们输入正确的密钥时,它会发出错误

错误[ERR_HTTP_HEADERS_SENT]:无法在将标头发送到客户端后设置标头

idk做什么我在设置cookie之前尝试重定向,甚至只是在重定向后记录,但错误不会消失!

继承我的代码: key的定义不在本部分中

app.get("/", function(req,res) {
    if (req.cookies.userSecret == key) {
    res.sendFile(__dirname + "/index.html");
    } else {
        res.sendFile(__dirname + "/login.html")
        io.on("connection", function(socket) {
            socket.on("login", function(data){
                if (data == key) {
                    res.redirect("/1799fd8e-78aa-4bc0-9692-011a81c07248")
                    return false;
                } else {
                    io.emit("log", "Wrong key! try again")
                    return false;
                }
            })
        })
    }
});

app.get("/1799fd8e-78aa-4bc0-9692-011a81c07248", function(req,res) {
    console.log(key)
    res.sendFile(__dirname + "/index.html")
})

1 个答案:

答案 0 :(得分:2)

在请求已发送后,您无法重定向用户。您必须从客户端重定向用户。就像您在else部分中执行此操作一样,您将向用户发出一个事件,其中包含要重定向到的URL,并在客户端接收此事件并使用window.location更改URL。