2011-02-05 2 views
1

Я хочу написать простую программу Javascript, которая будет извлекать текстовый файл и отображать его с помощью предупреждения. Так, будучи оптимистом, я пошел на страницу w3schools, что имеет целью предложить примеры программ, и я попробовал один:Код примера XmlHTTPRequest не работает

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> 

Помощь?

ответ

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

+0

От любопытства, просто просмотренные страницы w3s, чтобы узнать, есть ли упоминание о политике происхождения. Я не вижу одного, что действительно плохо, учитывая, что это такой часто задаваемый вопрос. – leebriggs

+0

@leeeb: Вы ожидаете чего-нибудь еще от w3schools? ;) –

Смежные вопросы