繁体   English   中英

javascript:如何获取网页的内容

[英]javascript: how to fetch the content of a web page

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

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

有更好的方法/代码吗?

使用服务器端代理,如php页面,读取所需的页面,然后通过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);
}

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

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

出于安全原因,您无法使用AJAX将请求发送到其他域。

如果你真的需要这样做,你可以尝试使用jQuery和iFrames(阅读更多内容(阅读更多信息http://softwareas.com/cross-domain-communication-with-iframes )。

此外,您可以尝试使用Access-Control-Allow-Origin: http:// yourdomain:1234 / in headers,google for Cross-Origin Resource Sharing。 它虽然相对较新,但并非所有浏览器都知道这一点。 这也取决于您是否可以控制其他服务器标头生成以及其他一些事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM