问题 Node.js http.get


我有以下代码请求Google.com主页并将页面数据发送回客户端的Iframe。

 var options = {
    host: 'www.google.com',
    port: 80,
    path: '/',
    method: 'GET'
  };

  var req = http.get(options, function(res) {
    var pageData = "";
    res.setEncoding('utf8');
    res.on('data', function (chunk) {
      pageData += chunk;
    });

    res.on('end', function(){
      response.send(pageData)
    });
  });

但是,所有图片和CSS都在iframe中被破坏了?如何保存图像和CSS?


8942
2017-08-22 16:55


起源



答案:


最简单的解决方案是将<base href =“http://google.com/”>添加到html。最好在头部,'<head>'上的字符串替换,并用'<head> <base href =“http://google.com/”>'替换


11
2017-08-22 17:04



PS。你可能还需要剥离JS,因为AJAX不会跨越原点。 - Gerben
嗯,我以前从未见过......听起来很合理,我打算试一试,谢谢你; ) - Hacknightly
老兄,你又救了我一个星期,想要对着我的显示器撞我的头。谢谢你,千万次谢谢你。 - Hacknightly
你是千万次欢迎。我认为你的显示器会很高兴:-) - Gerben


答案:


最简单的解决方案是将<base href =“http://google.com/”>添加到html。最好在头部,'<head>'上的字符串替换,并用'<head> <base href =“http://google.com/”>'替换


11
2017-08-22 17:04



PS。你可能还需要剥离JS,因为AJAX不会跨越原点。 - Gerben
嗯,我以前从未见过......听起来很合理,我打算试一试,谢谢你; ) - Hacknightly
老兄,你又救了我一个星期,想要对着我的显示器撞我的头。谢谢你,千万次谢谢你。 - Hacknightly
你是千万次欢迎。我认为你的显示器会很高兴:-) - Gerben


让客户端获取Google页面会不会更容易?

<html>
<head>
<script>
window.onload = function () {
  var nif = document.createElement("iframe");
  nif.width = 850;
  nif.height = 500;
  nif.src = "http://www.google.de";
  nif.appendChild( document.createTextNode("no iframe support") );
  document.body.appendChild(nif);
};
</script>
</head>
<body>
<h1>IFRAME</h1>
</body>
</html>

3
2017-08-22 17:34



啊,对不起,我没有提到我在服务器端通过Node js发出请求。 - Hacknightly
当然,我注意到了;我只是不明白为什么在客户端更容易。好吧,可能有一个原因......只是无法弄清楚它可能是什么。 - Lumi
实际上,我现在看到你的解决方案是如何可行的。我也准备给他一个机会。 - Hacknightly
好。 :)当然,您可以对IFRAME进行硬编码,使其更容易 - 如果问题的限制允许的话。 - Lumi