XmlHTTPRequest示例代码不起作用

时间:2011-02-05 14:53:04

标签: javascript xmlhttprequest

我想编写一个简单的Javascript程序,它将获取文本文件并使用alert显示它。所以,乐观地说,我去了w3schools页面,声称提供示例程序,我尝试了一个:

http://www.w3schools.com/dom/tryit.asp?filename=try_dom_xmlhttprequest_first

它不起作用。我替换了他们的URL。我玩他们的代码试图让它工作。仍然没有。

我怀疑我的文件是在Comcast上托管的,因为Comcast阻止了对文件的Javascript访问。 但我希望我错了。我也试过了http://yahoo.com,但仍然得到了一个零字节的响应。

这是我最新的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<div id="myDiv" > xyz </div>
<script type="text/javascript">
<!--
var xmlHttp = null;
function writeDiv (divName, content)
{
     document.getElementById(divName).innerHTML = content;
}
function Fetch()
{
    var Url = "http://yahoo.com";
    document.getElementById("myDiv").innerHTML = "processing...";
    xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = ProcessRequest;
    xmlHttp.open("GET", Url, true );
    xmlHttp.send(null );
}
function ProcessRequest()
{
    if (xmlHttp.readyState == 4) {
        writeDiv ("myDiv", xmlHttp.responseText);
    }
}
Fetch();
//-->
</script>
</body>
</html>

帮助?

1 个答案:

答案 0 :(得分:5)

  1. 您无法访问其他网站上的数据。出于安全考虑,same origin policy会阻止此操作。
  2. 您已注释掉了JavaScript,因此无法执行(如果文件被处理为XHTML而不是HTML)。如果你想了解更多细节,我前一段时间写了an article on the subject
  3. 不要相信W3S。请参阅http://w3fools.com/
  4. new XMLHttpRequest()不适用于旧版本的Internet Explorer(根据leeeb,在IE 7中添加了对该语法的支持)