我正在尝试创建一个登录页面,该页面接受一个可以包含空格的房间名称。当房间名称传递给POST方法中的登录功能时,我正在使用encodeURIComponent
对其进行编码。日志显示它正在被编码,但是URL仍然包含空格。
我通过登录获得POST方法中的房间名称
var roomName;
roomName = encodeURIComponent(req.body.roomName);
delete req.body.roomName;
var url = '/room/login/' + roomName;
console.log('In Post Login roomname: ' + url);
res.redirect(url);
这是该功能的日志
In Post Login roomname: /room/login/trial%201
控制权传递给登录GET方法
console.log('In get login roomname: ' + req.url);
var roomName = req.params.roomName;
roomName = decodeURIComponent(roomName);
Room.getRoomByName(roomName, (err, room) => {
if (err) throw err;
if(room)
res.render('login', {roomName: roomName});
else
res.redirect('/room/createnewroom');
});
这里的日志是
In get login roomname: /login/trial%201
它表明该网址已编码,但浏览器将该网址显示为
http://localhost:5000/room/login/trial 1
为什么URL中仍然有空格字符?
编辑: 我在Google Chrome浏览器中尝试过相同的方法。 网址不显示任何空格。是
http://localhost:5000/room/login/trial%201
与浏览器有关吗?