2010-08-14 3 views
0

Cela me dérange depuis des lustres et j'ai tout essayé et je n'arrive pas à le faire fonctionner.Obtenir des données à partir d'une XMLHttpRequest

Voici ma fonction actuellement

function example1() { 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("GET", url,true); 
    xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4) { 
     data=(xmlhttp.responseText); 
     } 
    } 
    xmlhttp.send(null); 
} 

Je voudrais être en mesure d'obtenir des « données » de cette fonction que je peux alors dans une autre fonction revenir un peu regex sur et je voudrais pouvoir faire "url" dépend de l'entrée de l'utilisateur

J'espère que quelqu'un peut m'aider, cela me rend extrêmement fou.

Merci pour votre temps

Répondre

-1

XmlHttpRequest ne fonctionne pas dans le domaine, donc si un utilisateur, par exemple, soumet http://google.com, il ne fonctionnera pas. Cependant, si vous voulez obtenir des données à partir de votre propre site, et demandez-leur entrée une URL à partir de votre propre site, le code HTML d'URL serait inclus dans

xmlhttp.responseHtml; 
+0

Désolé, ce n'est pas mon problème. "Je voudrais pouvoir obtenir des" données "de cette fonction que je peux ensuite dans une autre fonction retourner un certain regrex sur ET je voudrais pouvoir faire" url "dépendant de l'entrée de l'utilisateur" – jigh

+0

Oh désolé à ce sujet. Pour obtenir l'entrée de l'utilisateur, disons que vous avez une adresse URL, puis changez-la en: var data = example1 (url); Donc, au lieu de dire data = (xmlhttp.responseText); Dites renvoyer xmlhttp.responseText; – codersarepeople

+0

J'ai toujours des problèmes. J'ai trouvé une autre raison pour laquelle je ne peux pas continuer alors j'abandonne toute l'idée (pour l'instant) Merci quand même – jigh

0

Réponse courte: vous devez modifier le troisième paramètre , le async drapeau de

xmlhttp.open("GET", url, true) 

à

xmlhttp.open("GET", url, false) 

une erreur commune est de penser que c'est un problème de cadrage car si vous définissez deb ugging messages dans le xmlhttp.onload = function() {...}, il fonctionne dans le rappel alors que rien ne se passe en dehors du rappel.

Il se trouve c'est en fait un problème de synchronisation parce que si async est réglé sur vrai (par défaut), les messages de débogage en dehors de la course de rappel onload avant que le rappel est exécuté.

Questions connexes