我试图拦截对来自我网站的相对路径引用的html元素(如图像和脚本)的请求,并使用requestJS for NodeJS从第二个网站中检索它们,这适用于脚本,但是我找不到解决方法图片。
例如,在我的主页.html(127.0.0.1:3030)中,我有:
<script src="/main/mainscript.js"></script>
拦截检索“ http://my2website.com/main/mainscript.js ”,效果很好
<img src=”/images/logo.png”/>
拦截检索“ http://my2website.com/images/logo.png ”,但是即使我看到响应头属性与所需文件匹配,也总是出错。
使用此代码:
app.get('*', function (req, res) {
var options = {
url: 'http://my2website.com'+ req.path,
headers: {
'User-Agent': req.headers['user-agent']
}
};
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
res.send(body);
}
else {
console.log('request error: ' + JSON.stringify(error));
res.redirect('/');
}
});
});
请原谅我的英语不好。
设置encoding: null
您的options
。通过将响应作为Buffer
实例而不是将其转换为UTF-8字符串,可以保持二进制数据完整无缺:
var options = {
url: 'http://my2website.com'+ req.path,
headers: {
'User-Agent': req.headers['user-agent']
},
encoding: null
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句