2011-02-05 122 views
1

我想编写一个简单的Javascript程序,它将获取文本文件并使用警报显示它。所以,被人看好,我去的那声称提供的示例程序W3Schools的页面,我想一个:XmlHTTPRequest示例代码不起作用

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

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

我有一个偷偷的怀疑,我的文件,这是托管在康卡斯特,没有被读取,因为康卡斯特阻止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> 

帮助?

回答

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添加了对语法的支持)
+0

的XMLHttpRequest是从IE7本土。 – leebriggs 2011-02-05 15:03:24