在 JavaScript 中,是否可以将网页内容获取并赋值给变量?例如,为什么以下简单示例代码无法工作?
var req = new XMLHttpRequest();
req.open('GET', 'http://www.google.com', false);
req.send(null);
if(req.status == 200)
alert(req.responseText);
有更好的方法/代码吗?
在 JavaScript 中,是否可以将网页内容获取并赋值给变量?例如,为什么以下简单示例代码无法工作?
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向不同域发送请求。