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 许可协议

阅读 563
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题