简体   繁体   English

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

[英]error: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

I am new to node.js and I am working in the client-side with a regular js and I got this error:我是 node.js 的新手,我正在使用常规 js 在客户端工作,但出现此错误:

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头

my server code is:我的服务器代码是:

app.get('/connect', function (req, res) {
    console.log("connect to the user");
    res.sendFile(path.join(__dirname, 'client', 'connect.html'));
});

app.post('/connect', function (req, res) {
    const userNameEnter = req.body.userName;
    const passwordEnter = req.body.password;

// //entering if the user and pass are correct
if (userNameEnter !== undefined && passwordEnter !== undefined) {
    User.findOne({ userName: userNameEnter }, function (err, user) {
        console.log(err);
        if (user !== null) { //can enter
            if (user.userPassword === passwordEnter) {
                res.json({
                    status: "seccess",
                    user: "canEnter"
                });
                console.log("can enter");
                res.redirect("/gameManage/" + user.id);
            } else {//cant enter
                res.json({
                    status: "seccess",
                    user: "notOk"
                });
            }
        } else {//cant enter
            res.json({
                status: "seccess",
                user: "notOk"
            });
            console.log("cant enter");
        }
    });
}
console.log(newUser);

}); });

I have to send the JSON because the js needs to know what to do next.我必须发送 JSON 因为 js 需要知道下一步该做什么。 How can I redirect it in another way so I do have the parameter of the userId in the URL line?如何以另一种方式重定向它,以便在 URL 行中有 userId 的参数?

You can't send response to the client and then also redirect the client.您不能向客户端发送响应,然后也重定向客户端。 You should send the redirect path to the client and then redirect from client side using javascript您应该将重定向路径发送到客户端,然后使用 javascript 从客户端重定向

res.json({
     status: "seccess",
     user: "canEnter",
     redirectPath: "/gameManage/" + user.id
});

On client side在客户端

if (response.redirectPath) {
    window.location.href = response.redirectPath;
}

暂无
暂无

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

相关问题 错误:[ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头,获取错误 - Error: [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client, fetch error 错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头 -error - Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client -error 这是我收到的错误错误 [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client - this is the error i m getting Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client next() 不适用于 Express 4,错误 [ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置标头 - next() is not working on Express 4, Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 错误 [ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置标头(POST 方法) - Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client (POST method) 错误[ERR_HTTP_HEADERS_SENT]:将标头发送到Node JS中的客户端后,无法设置标头 - Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client in Node JS Express 应用程序错误:[ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头 - Express app error: [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client NodeJS SQL 登录错误(ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置标头) - NodeJS SQL Login Error (ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client) node.js:错误 [ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后无法设置标头 - node.js : Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 如何修复“错误 [ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后无法设置标头” - how to fix "Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client"
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM