我做了一个简单的文本框,可以接受
Youtube视频网址
将其视频ID切片,并使用提取将数据发送到我的快递服务器。我正在使用Youtube Data API v3
//after clicking button sends data
//input fields are defined already.
const sendData = (event) => {
event.preventDefault();
const filterUrl = input2.value.indexOf('&') != -1 ? input2.value.slice(0, input2.value.indexOf('&')) : input2.value;
const url = new URL(filterUrl).searchParams.get("v");
fetch('/', {
method: 'post',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
urlname: url.toString()
})
})
.then(function(res) {
console.log(res)
})
.catch(function(error) {
console.log(error)
});
}
这是我的Express Handler:
//defined routes and PARAMETER variable is globally defined
app.route('/')
.get((req, res) => {
res.render('container/index', {
title: 'Hello User!',
content: 'Welcome to youtube Comment viewer'
});
})
.post((req, res) => {
console.log("hello")
PARAMETER = req.body.urlname;
console.log(PARAMETER);
res.redirect('/randomCommentView');
});
//get request
app.get('/randomCommentView', (req, res) => {
console.log("inside");
Comments(PARAMETER)
.then((data) => {
res.render('container/comment', {
Comment: 'fgfg'
})
}).catch(err => {
if (err) res.status(404).render('container/index', {
notFound: `Your request couldn't be completed ERR: ${err}`
})
})
console.log(req.body);
});
但是当我提交我的Youtube视频网址时,页面停留在同一条路线上。
这是我的输出的图像:
因此,似乎正在调用路由,但在Web浏览器中页面URL并未更改。是否有人知道这种可能的原因。 谢谢, 问候。
答案 0 :(得分:1)
由于您使用的是javascript发出请求,因此只有javascript会遵循您的重定向。
您可以做的是代替从服务器发送重定向,而是发送特殊代码,该代码将触发客户端javascript代码中的手动重定向(window.location.href = ...
)。