XmlHTTPRequest示例代码不起作用

use*_*877 1 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>
Run Code Online (Sandbox Code Playgroud)

救命?

Que*_*tin 5

  1. 您无法访问其他网站上的数据.出于安全原因,相同的原始策略会阻止此操作
  2. 您已经注释掉了JavaScript,因此它不会执行(如果文件被处理为XHTML而不是HTML).如果你想了解更多细节,我前一段时间就写了一篇关于这个主题的文章.
  3. 不要相信W3S.见http://w3fools.com/
  4. new XMLHttpRequest() 将无法在旧版本的Internet Explorer上运行(根据leeeb,在IE 7中添加了对该语法的支持)