2011-02-05 100 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