JAVASCRIPT如何获取远程页面内容

来源:百度知道 编辑:UC知道 时间:2024/09/25 11:23:45
我的程序思路是想通过XMLHTTPREQUEST方法获取google主页的整个代码,然后用handleStateChange()判断是否加载完毕,完毕后用alert()输出。理想中应该是我点了我做的网页中的按钮后就会出现一个对话框并包含内容,但是我点击按钮后很久很久都没响应,没结果,不知道错在哪里。
网页代码如下:
<html>
<script type="text/javascript">
function simpleExample(url) {
var req = new XMLHttpRequest();
req.open("GET",url,false);
req.send(null);
req.onreadystatechange = handleStateChange;
}
function handleStateChange()
{
if(req.readyState == 4)
{
if(req.status == 200)
{
var res = req.responseText.replace(/\n/g, "").replace(/\r/g, "");
alert(res);
}
}
}
</script>
<body>
<form><button type="button" onclick="simpleExample('http://www.google.cn');">

JS AJAX技术获取网页源代码是不行的...

要用其他方法...

例如,我用PHP的套接字模拟HTTP协议的方式编写一个获取源代码的PHP程序.

再用JS AJAX调用这个PHP程序.. 就能实现跨域了..

当然,你如果会JAVA,直接写个JAVA Applet也行...利用 URLConnection类,获取源代码轻而易举...

一般来说,浏览器不允许你跨域访问,有时IE好象不能正确定某个IP与某个域名是同一域...也就是说你在你的本机去访问 另一个域名也可以说是 IP 是不行的...所以被拒绝了...你当然就不能等到google.cn的页面代码了...楼主明白了吧!!! 计算机就是这样的..没有什么原因...
楼主可以试一个在这个文件的同一目录中再建另一个文件假设是 : abc.html
楼主把那个 www.google.cn改成 abc.html的地址就可以得到abc.html的页面代码了...这个当然就没有跨域访问喽...呵呵...

祝楼主早日成功!!!!

楼主...跨域是不能访问的...楼主想要什么东西呀???

火狐也是一样的也是不能跨域访问的!!!

首先onreadystatechange属性应该在open函数执行之前指定
否则如果浏览器速度太快或者网速太快就可能永远收不到结果。
其次open的异步选项最好设成true,因为现在浏览器用的都是标签页,设成false会使得其他标签页都停止载入。
还有status大于200小于300或者是304或者为空时都意味这请求成功

你用哪个版本的IE测试的?
ie7 之前的版本需要 var req = new ActiveXObject("Msxml2.XMLHTTP");