javascript:如何获取网页的内容

新手上路,请多包涵

在 JS 中是否可以获取网页的内容并将其分配给变量?例如,为什么下面的玩具代码不起作用?

 var req = new XMLHttpRequest();
req.open('GET', 'http://www.google.com', false);
req.send(null);
if(req.status == 200)
  alert(req.responseText);

有更好的方法/代码吗?

原文由 tic 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 569
2 个回答

使用服务器端代理,例如读取所需页面的 php-page,然后通过 javascript 对该代理进行 ajax 调用:

 var req = new XMLHttpRequest();

req.open('GET', 'proxy.php?url=http://www.google.com', false);
req.send(null);

if(req.status == 200) {
   alert(req.responseText);
}

原文由 gion_13 发布,翻译遵循 CC BY-SA 3.0 许可协议

以上不起作用,因为出于安全考虑,Ajax 请求无法访问其他域上的文件/页面。通常,您可以使用 [在此处插入服务器端语言] 创建脚本来下载请求的页面。然后你的javascript可以向这个页面发出请求。

还有“JSONP”,但这通常用于提供特定 JSONP 访问的站点,大多数随机 URL 不提供。

原文由 Hux 发布,翻译遵循 CC BY-SA 2.5 许可协议

推荐问题