Re: [OSM-dev-fr] Aide html/javascript

2014-04-28 Par sujet Philippe Verdy
Ce ne serait pas une limite de sécurité des XmlHttpRequest imposée par IE8
pour une requête inter-domaine qui empêche la requête de s'exécuter ?

Deux lignes bizarres (dans ton main.js):

xhr.setRequestHeader( Content-length, params.length );
xhr.setRequestHeader( Connection, close );

Pour la première ce n'est pas la bonne valeur, car tu compte le nombre de
caractères UTF-16 de la chaîne Javascript et non son encodage dans la
requête (UTF-8) et aussi il manque le réencodage HTTP des sauts de ligne.
Tout dépend de ce qui est dans params.
De plus tu utilises à la fois des param_tres POST et des paramètres GET
dans une requête POST:
xhr.open(POST, getDepartement.php?ville= + ville, true );
Pour pas simplement dans ce cas ne pas tout mettre dans la query string et
utiliser une requête GET?

Pour la seconde, Connection:close est suspect. A priori on ne précise que
la condition keep-alive (si la requête se fait en HTTP/1.0 et sinon rien en
HTTP/1.1).

Les deux entêtes Connection:close et Content-length:* sont marqués unsafe
par la console de Chrome mais je soupçonne que le vieux XmlHTTPRequest
d'IE8 soit plus radical et rejette ta requête. A priori c'est au composant
XMLHttpRequest de s'en charger.

Enfin XMLHttpRequest dans IE a été un activeX nécessitant une autorisation
spéciale et qui peut sinon t'empêcher de faire une requête interdomaine.
Mais ici l'URL que tu utilises dans xhr.open() ne précise pas le domaine et
si XmlHTTPRequest est un composant externe, il n'aura pas accès tout seul à
l'URL de base de ton document. Il faut alors préciser l'URL complète et pas
une URL relative;

Cela concerne aussi:

xmlhttp.open(GET, getCenter.php?dep= + dep + ville= + ville);

où cette fois tu n'utilises que des paramètres GET (dans la query-string),
requête qui a l'avantage d'être cachable par défaut au contraire des
requêtes POST.



Le 28 avril 2014 13:00, Tyndare tynd...@wanadoo.fr a écrit :

 Le 28 avril 2014 06:15,  didier2...@free.fr a écrit :
  je viens juste d'essayer sur windows xp
  + avec ie8:
 
  - en bas a droite de la page web, le lien de l'image openstreetmap.fr
 est brisé : http://www.cleo-carto.com/images/cartouche_osm-fr.png
  mais il y a une redirection de cleo ...

 Effectivement. Je ne connais pas trop l'historique du site web.
 Quelqu'un sais où trouver une image cartouche osm fr pour remplacer ?

  - la selection du departement fonctionne mais la liste des communes est
 vide

 La je sèche...
 La liste est normalement remplie en modifiant la valleur innerHTML
 avec le résultat d'une XmlHttpRequest. Je ne sais pas trop ce qui pose
 problème avec IE8.

 ___
 dev-fr mailing list
 dev-fr@openstreetmap.org
 https://lists.openstreetmap.org/listinfo/dev-fr

___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] Aide html/javascript

2014-04-28 Par sujet Tyndare
Le 28 avril 2014 14:36, Philippe Verdy verd...@wanadoo.fr a écrit :
 Ce ne serait pas une limite de sécurité des XmlHttpRequest imposée par IE8
 pour une requête inter-domaine qui empêche la requête de s'exécuter ?

A mon avis, étant donné qu'on ne précise pas le domaine de la requête
il s'agit d'une requête sur le même domaine.

 Deux lignes bizarres (dans ton main.js):

 xhr.setRequestHeader( Content-length, params.length );
 xhr.setRequestHeader( Connection, close );

 Pour la première ce n'est pas la bonne valeur, car tu compte le nombre de
 caractères UTF-16 de la chaîne Javascript et non son encodage dans la
 requête (UTF-8) et aussi il manque le réencodage HTTP des sauts de ligne.
 Tout dépend de ce qui est dans params.
 De plus tu utilises à la fois des param_tres POST et des paramètres GET dans
 une requête POST:
 xhr.open(POST, getDepartement.php?ville= + ville, true );
 Pour pas simplement dans ce cas ne pas tout mettre dans la query string et
 utiliser une requête GET?

Ce n'est pas moi qui avait écrit cette partie à la base, je n'ai pas
voulu trop la changer pour éviter de casser un truc qui marche, mais
effectivement une requête GET semblerais plus logique.

 Pour la seconde, Connection:close est suspect. A priori on ne précise que la
 condition keep-alive (si la requête se fait en HTTP/1.0 et sinon rien en
 HTTP/1.1).

 Les deux entêtes Connection:close et Content-length:* sont marqués unsafe
 par la console de Chrome mais je soupçonne que le vieux XmlHTTPRequest d'IE8
 soit plus radical et rejette ta requête. A priori c'est au composant
 XMLHttpRequest de s'en charger.

 Enfin XMLHttpRequest dans IE a été un activeX nécessitant une autorisation
 spéciale et qui peut sinon t'empêcher de faire une requête interdomaine.
 Mais ici l'URL que tu utilises dans xhr.open() ne précise pas le domaine et
 si XmlHTTPRequest est un composant externe, il n'aura pas accès tout seul à
 l'URL de base de ton document. Il faut alors préciser l'URL complète et pas
 une URL relative;

Le composant axtiveX c'était je crois pour ie6, pas ie8.

___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] Aide html/javascript

2014-04-28 Par sujet Philippe Verdy
Le 28 avril 2014 16:16, Tyndare tynd...@wanadoo.fr a écrit :

 Le composant axtiveX c'était je crois pour ie6, pas ie8.


Je ne suis pas certain qu'il soit disparu même si IE donne une interface
native pour l'instancier. Utiliser directement les XHR pose des problèmes
de compatibilité. Cela fait longtemps que je n'utilise plus les XHR de
cette façon, mais j'utilise un framework.
Il y a même une intégration plus poussée avec le framework Leaflet pour ses
mixins.

Sinon j'en ai soupé de suivre les versions d'IE qui changent leurs API sans
arrêt ou la façon de les utiliser en préservant la compatibilité de ce qui
se faisait dans les versions d'avant (et pas toujours des moyens simples
pour détecter la bonne façon de faire).

Tu peux déjà essayer en utilisant une URL absolue et non une URL relative
(la question qui se pose est bien  relative à quoi ? Il est possible que
cette requête ne s'exécute pas du tout en fait (rien envoyé au serveur, ou
erreur HTTP 404, j'ai déjà eu des trucs bizarres avec les XHR utilisant des
URL relatives mal résolues, parfois liées à des threads concurrents qui
interrogent d'autres serveurs XHR)

Sinon, les XHR sont un peu obsolètes, les requêtes JSON ont une intégration
native et plus sécurisée (et moins de contraintes et plus de performance,
même si ici les requêtes ne sont pas énormes et fréquentes). Même si au
final tes requêtes XHR ne servent pas à charger du XML nécessitant un
parseur lourd côté client.

Enfin sur Chrome la première requête effectuée (si on n'a encore rien saisi
dans la commune) en sélectionnant un département est
.http://cadastre.openstreetmap.fr/getDepartement.php?ville=undefined

Tu noteras la présence de undefined qui signale une variable non
initialisée (le nom de la ville cherchée). Je ne sais pas ce qui est
transmis en valeur sous IE et comment cela affecte ensuite la recherche des
communes...
___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] Aide html/javascript

2014-04-28 Par sujet Tyndare
J'ai pu tester sur IE9 et il a manifestement le même problème qu'IE8.
Apparemment le problème n'a rien a voir avec la requête XmlHttpRequest
qui fonctionne très bien, le problème est du à un bug d'IE quand on
affecte l'innerHTML d'un élément select [1].

Merci quand même Philippe pour tes remarques sur le XHR, même si je
n'ai pas tout compris j'ai essayé de passer en mode GET et j'ai
supprimé le paramètre 'ville' qui n'était plus vraiment utile.

[1] http://support.microsoft.com/kb/276228/fr

Le 28 avril 2014 18:31, Philippe Verdy verd...@wanadoo.fr a écrit :

 Le 28 avril 2014 16:16, Tyndare tynd...@wanadoo.fr a écrit :

 Le composant axtiveX c'était je crois pour ie6, pas ie8.


 Je ne suis pas certain qu'il soit disparu même si IE donne une interface
 native pour l'instancier. Utiliser directement les XHR pose des problèmes de
 compatibilité. Cela fait longtemps que je n'utilise plus les XHR de cette
 façon, mais j'utilise un framework.
 Il y a même une intégration plus poussée avec le framework Leaflet pour ses
 mixins.

 Sinon j'en ai soupé de suivre les versions d'IE qui changent leurs API sans
 arrêt ou la façon de les utiliser en préservant la compatibilité de ce qui
 se faisait dans les versions d'avant (et pas toujours des moyens simples
 pour détecter la bonne façon de faire).

 Tu peux déjà essayer en utilisant une URL absolue et non une URL relative
 (la question qui se pose est bien  relative à quoi ? Il est possible que
 cette requête ne s'exécute pas du tout en fait (rien envoyé au serveur, ou
 erreur HTTP 404, j'ai déjà eu des trucs bizarres avec les XHR utilisant des
 URL relatives mal résolues, parfois liées à des threads concurrents qui
 interrogent d'autres serveurs XHR)

 Sinon, les XHR sont un peu obsolètes, les requêtes JSON ont une intégration
 native et plus sécurisée (et moins de contraintes et plus de performance,
 même si ici les requêtes ne sont pas énormes et fréquentes). Même si au
 final tes requêtes XHR ne servent pas à charger du XML nécessitant un
 parseur lourd côté client.

 Enfin sur Chrome la première requête effectuée (si on n'a encore rien saisi
 dans la commune) en sélectionnant un département est
 .http://cadastre.openstreetmap.fr/getDepartement.php?ville=undefined

 Tu noteras la présence de undefined qui signale une variable non
 initialisée (le nom de la ville cherchée). Je ne sais pas ce qui est
 transmis en valeur sous IE et comment cela affecte ensuite la recherche des
 communes...





 ___
 dev-fr mailing list
 dev-fr@openstreetmap.org
 https://lists.openstreetmap.org/listinfo/dev-fr


___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


[OSM-dev-fr] Aide html/javascript

2014-04-27 Par sujet Tyndare
Si jamais il y a des personnes compétentes en html/javascript et
volontaires pour tester et investiguer je suis preneur...

J'ai essayé de rajouter une option sur le site d'extraction du bâti
depuis le cadastre [1]

Elle marche pour moi, mais manifestement pas pour tout le monde [2]
donc je me dis que le problème est lié au navigateur web.

L'option a tester est la case à cocher
«Sélectionner une zone à exporter»
Lorsqu'on l'active c'est censé afficher une carte leaflet et un
rectangle de sélection, si on l'active, l'extraction du bâti devrais
se limiter à cette zone.

Le code est ici [3] mais c'est aussi simple de regarder le code depuis
le navigateur.


[1] http://cadastre.openstreetmap.fr/
[2] http://trac.openstreetmap.fr/ticket/552#comment:3
[3] https://github.com/osm-fr/export-cadastre/tree/master/web

___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] Aide html/javascript

2014-04-27 Par sujet Vincent de Château-Thierry

Bonjour,

Le 27/04/2014 13:02, didier2020 a écrit :



j'ai essayé sur nimes (30)


Le dimanche 27 avril 2014 à 12:30 +0200, didier2020 a écrit :

Le dimanche 27 avril 2014 à 11:28 +0200, Tyndare a écrit :

Si jamais il y a des personnes compétentes en html/javascript et
volontaires pour tester et investiguer je suis preneur...

J'ai essayé de rajouter une option sur le site d'extraction du bâti
depuis le cadastre [1]

Elle marche pour moi, mais manifestement pas pour tout le monde [2]
donc je me dis que le problème est lié au navigateur web.

j'ai essayé avec 2 navigateurs (under linux) = ça marche
parfaitement !


sur ma commune ...
j'ai essayé sur nimes (30) , il ne se passe rien (?)

sinon détail pour la page html:
title=Transforme les lettres B,T,Q en bis, ter, quater et rajoute un
espace pour les autres checked/

le / est en trop



L'option a tester est la case à cocher
«Sélectionner une zone à exporter»
Lorsqu'on l'active c'est censé afficher une carte leaflet et un
rectangle de sélection, si on l'active, l'extraction du bâti devrais
se limiter à cette zone.

Le code est ici [3] mais c'est aussi simple de regarder le code depuis
le navigateur.


[1] http://cadastre.openstreetmap.fr/
[2] http://trac.openstreetmap.fr/ticket/552#comment:3
[3] https://github.com/osm-fr/export-cadastre/tree/master/web


Ça marche aussi très bien chez moi (Win 8.1 + Chrome).
En revanche j'ai mis du temps à comprendre que la case à cocher 
Sélectionner une zone à exporter ne fonctionnait qu'une fois une ville 
sélectionnée au dessus. A posteriori c'est logique, mais je ne l'ai 
compris qu'en regardant le code JS. Donc un petit message peut aider, 
pour faire comprendre que ce mode de sélection est en complément du 
choix de la ville, et non une alternative à celui-ci.


vincent

___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr