2011-02-05 4 views
1

Je veux écrire un programme Javascript simple qui va chercher un fichier texte et l'afficher en utilisant l'alerte. Donc, être optimiste, je suis allé à la page W3Schools qui prétend offrir des exemples de programmes et j'ai essayé un:L'exemple de code XmlHTTPRequest ne fonctionne pas

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

Il ne fonctionne pas. J'ai substitué leur URL pour le mien. J'ai joué avec leur code pour essayer de le faire fonctionner. Toujours rien.

Je soupçonne que mon fichier, hébergé sur Comcast, n'est pas lu car Comcast bloque l'accès Javascript aux fichiers. Mais j'espère que j'ai tort. J'ai également essayé http://yahoo.com, et encore j'obtiens une réponse de zéro-byte.

Voici mon dernier code:

<!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> 

aide?

Répondre

5
  1. Vous ne pouvez pas accéder aux données sur d'autres sites. Le same origin policy empêche cela pour des raisons de sécurité.
  2. Vous avez commenté votre JavaScript, donc il ne s'exécutera pas (si le fichier est traité en XHTML au lieu de HTML). J'ai écrit an article on the subject il y a un moment si vous voulez plus de détails.
  3. Ne faites pas confiance à W3S. Voir http://w3fools.com/
  4. new XMLHttpRequest() ne fonctionnera pas sur les anciennes versions d'Internet Explorer (selon leeeb, le soutien à cette syntaxe a été ajouté dans IE 7)
+0

XMLHttpRequest était originaire de IE7. – leebriggs

+0

De curiosité, juste scanné à travers les pages w3s pour voir si il n'y a aucune mention de la politique d'origine. Je ne peux pas en voir un, ce qui est vraiment mauvais étant donné que c'est une question si fréquemment posée. – leebriggs

+0

@leeeb: Attendez-vous à autre chose de w3schools? ;) –

Questions connexes