【问题标题】:javascript: how to fetch the content of a web pagejavascript:如何获取网页的内容
【发布时间】:2011-07-15 01:16:42
【问题描述】:
在 JS 中是否可以获取网页的内容并将其分配给变量?
例如,为什么下面的玩具代码不起作用?
var req = new XMLHttpRequest();
req.open('GET', 'http://www.google.com', false);
req.send(null);
if(req.status == 200)
alert(req.responseText);
有更好的方法/代码吗?
【问题讨论】:
标签:
javascript
html
xmlhttprequest
fetch
responsetext
【解决方案1】:
使用服务器端代理,例如读取所需页面的 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);
}
【解决方案2】:
上述方法不起作用,因为出于安全考虑,Ajax 请求无法访问其他域上的文件/页面。通常,您可以使用 [在此处插入服务器端语言] 制作脚本来下载请求的页面。然后你的 javascript 可以向这个页面发出请求。
还有“JSONP”,但这通常用于提供特定 JSONP 访问的网站,而大多数随机 URL 不提供。
【解决方案3】:
出于安全原因,您不能使用 AJAX 向其他域发送请求。