我正在尝试使用express重写iframe的网址。
类似的代码适用于我的public
文件夹中的文件(表达了对server.use(express['static'](__dirname + '/public'
的感谢)。
玉代码:
iframe(width="560", height="315", src="/videos/9bZkp7q19f0", frameborder="0", allowfullscreen=true)
快递代码:
server.use(function(req, res, next) {
if (/videos/.test(req.url)) {
req.url = req.url.replace("videos", "embed");
req.url = "www.youtube.com" + req.url;
}
next();
});
添加console.log(req.url)
会显示正确的网址(www.youtube.com/embed/9bZkp7q19f0),但表示会记录404错误。
提前致谢。
答案 0 :(得分:1)
您不能只更改req.url
并期望客户端实际从那里检索数据。您需要的是代理或重定向。
重定向会强制iframe重定向到youtube.com
:
res.redirect('http://www.youtube.com' + req.url.replace('videos', 'embed'));
代理实际上会从您的服务器请求该页面,下载内容并返回给客户端:(您可以使用request)
req.pipe(require('request')('http://www.youtube.com'
+ req.url.replace('videos', 'embed'))).pipe(res);