De l'aide sur Xmlhttprequest

Balooners

Membre expert
Club iGen
31 Janvier 2003
3 623
439
42
Grenoble
www.harold-estassy.com
Voilà, étant donné que je commence à faire un peu de Widgets, mon but serait d'intégrer les résultats de recherche dans le Widget. Seulement, je n'y connais pas bien grand chose en ni en Html ni en Javascrip, mais ça progresse... :D

En fait voilà, je me suis un peu renseigner et j'ai pu voir que cela s'appel du XmlhttpRequest (Du chinois pour moi...) Mais bon, je me suis penché dessus, et j'ai encore moins bien compris :D

Est ce que quelqu'un connais un tutoriel ou autre chose comme ça assez détaillé, pour mieux le comprendre ? J'ai trouvé des truc via Google, mais rien de bien convaincant. Où même si quelqu'un veut faire un cours là dessus :love: Molgow si tu m'entends ? :D Ou si quelqu'un a des cours spécial neuneu là dessus, je suis preneur. Enfin voilà j'essaye de me former un peu là dessus mais c'est pas le plus simple pour commencer je crois. Mais je commence à comprendre petit à petit…
 
GrandGibus a dit:
et tu n'as pas trouvé ton bonheure ICI ?

En fait, il faudrait un truc un peu plus pour Neuneux :D parce que je l'ai vu ça, mais je n'ai pas bien compris :rose: Un truc du style .... Tu clics là ensuite ça fait ça puis après tu clics là... puis c'est fini. Vous voyez ce que je veux dire ?
 
Il y a openweb.eu.org qui a un article sur le XmlHttpRequest. Plus généralement tu peux utiliser le nom AJAX pour parler de XmlHttpRequest. Ca te permettra d'obtenir de meilleurs résultats sur Google peut être.
 
Balooners a dit:
En fait, il faudrait un truc un peu plus pour Neuneux :D parce que je l'ai vu ça, mais je n'ai pas bien compris :rose: Un truc du style .... Tu clics là ensuite ça fait ça puis après tu clics là... puis c'est fini. Vous voyez ce que je veux dire ?

je voudrais pas etre mechant mais t'a deja vu un langage qui s'apprend comme ca? non.
J'ai commencé comme toi sans rien y connaitre au javascript et ce ne fut pas simple.
 
mtra a dit:
je voudrais pas etre mechant mais t'a deja vu un langage qui s'apprend comme ca? non.
J'ai commencé comme toi sans rien y connaitre au javascript et ce ne fut pas simple.


Oui non mais je suis d'accord là dessus, d'ailleurs je suis en plein apprentissage là :D mais on ne sais jamais, on trouve parfois des trucs surprenant sur le Net :D
 
Balooners a dit:
Oui non mais je suis d'accord là dessus, d'ailleurs je suis en plein apprentissage là :D mais on ne sais jamais, on trouve parfois des trucs surprenant sur le Net :D

tu peux apprendre bcp en editant des widget deja existant, d'ailleur c'est le meilleur moyen de commencer mais je prefere t'avertir que pour aller plus looin dans la comprehension du code il va te falloir t'investir dedans. javascript c'est compliqué et non standard (c'est a dire que du code glané ca et la sur le web ne marchera pas forcement dans safari ou dans ton widget.
 
  • J’aime
Réactions: Balooners
Salut

J'ai une petite question concernant xmlhttp, peut-être que quelqu'un ici peut m'aider. J'essaie de récupérer une image gif avex XMLhttp. Le problème c'est que si l'image n'existe pas, on me renvoie non pas un code 404, mais un code 302 de redirection vers une page html.

Or, le code 302 ne semble pas être interprêté comme il faut. En effet, je fais une requête comme ci-dessous, et lorsque la réponse vaut 200, c'est bien la fonction fais_autre_chose qui est exécutée, mais lorsque le code est 302, c'est également la fonction fais_autre_chose qui est exécutée.

Bloc de code:
xmlhttp = new XMLHttpRequest();

if (xmlhttp) {
     xmlhttp.onreadystatechange=function()	{
          if (xmlhttp.readyState == 4) {
               stat = xmlhttp.status;
        	 switch (stat) {
                    case 302: { fais_quelque_chose; break; }
    		      case 200: { fais_autre_chose; break; }
               }
  	   }
     }

     xmlhttp.open("GET", url,true); 
     xmlhttp.send(null);
}

De plus, quand WebCore tombe sur un code 302, un GET vers la nouvelle location est automatiquement exécuté.

Ce code est utilisé dans un Widget.
Est-ce que quelqu'un sait où je fais une connerie???

merci d'avance.

ben

[edit]
bon en fait il semblerai que la variable stat prends la valeur 200, ce qui est bizarre vu que c'est bien la valeur 302 qui est renvoyée (j'ai sniffé le paquet avec ethereal), donc c'est la méthode status de xmlhttp qui me retourne une mauvaise valeur?? bizarre bizarre.
[/edit]
 
j'assigne un string représentant l'URL du fichier à aller chercher

url = "http://www.monsite.com/fichier.gif"

Bon en fait j'ai fait d'une autre manière. Comme j'ai toujours un code 200 qui m'est retourné, et que de temps en temps, il s'agit d'un fichier gif (quand il est trouvé), ou d'une page html (quand le gif n'est pas trouvé), je recherche une string dans la réponse. Si elle est trouvée, alors le fichier gif n'a pas été trouvé, et inversément...

Bloc de code:
var response = xmlhttp.responseText;
var isNotFound = response.indexOf("DOCTYPE");
if(isNotFound == -1) {
     // file found
} else {
     // file not found	
}

par contre si quelqu'un sait comment j'aurai pu faire autrement...
 
he bien en théorie tu ne peux pas faire ca xlmhttprequest te ramene du text ou du xml. donc ca te ramene une balise img et pas directement une image.il faut donc parsé la page qui contient l'image pour en ramener la balise qui contient l'image. tu peux meme faire une fonction php qui te mache le boulot.
 
Ca m'étonne, j'crois qu'on peut le faire, parce que un XMLhttpRequest, c'est une simple requête http qui est faite, et avec une requête http, y'a pas de problème pour faire un GET sur un fichier .gif.

J'ai par contre remarqué qu'on peut pas faire une requête http HEAD avec WebCore, il fait automatiquement un GET.

Le problème que j'avais vient du serveur sur lequel est stocké le fichier .gif, car il devrait me retourner un 404 not found au lieu d'un 302 moved temporary. En fait le serveur devrait, avec un 302, me rediriger vers le véritable emplacement du fichier gif. C'est pour ça que WebCore va automatiquement chercher le fichier situé au nouvel emplacement donné. Le problème c'est que là où le serveur me redirige se trouve un fichier html et non un gif.

Bref, tout ça à cause de ces serveurs qui sont configurés pour que, lorsqu'on fait une faute de frappe en tapant l'URL, on soit redirigé vers la page principale du site...

[edit] voici le p'tit widget pour lequel j'avais ce problème. Il permet d'accéder au télétext suisse... bon c'est vraiment codé à l'arrache... :D ) [/edit]