Aller au contenu | Aller au menu | Aller à la recherche

GeoNames accessible de tous les sites Web

Mozilla avec Firefox 3.5 a introduit une nouvelle possibilité : celle de faire une requête XML (XMLHttpRequest) sur une url d'un domaine différent.

Pour des raisons de sécurité, il n'est pas possible de faire en JavaScript une requête XML sur un autre domaine. Il existe tout de même des astuces mais pas très propres...

Cette limitation est légitime mais pour certains services comme GeoNames, cette limitation n'a pas de sens. Par exemple, GeoNames est prévu pour être accessible par tous et de partout.

Il est possible d'ouvrir son service à tout ou partie du Web via HTTP access control.

Paul Rouget (Mozilla evangelist) a contacter l'équipe GeoNames pour leur demander si il pouvait ouvrir leur service. Ce qu'ils ont fait en ajoutant un nouveau header HTTP :

Access-Control-Allow-Origin: *

Maintenant il est possible d'utiliser GeoNames de n'importe quel nom de domaine an JavaScript via XMLHttpRequest. C'est ce que l'on appelle le cross-site XHR.

Donc :

  • si vous êtes développeur de web services, réfléchissez à autoriser le cross-site XHR.
  • si vous utilisez un web service, contacter l'auteur et faites lui savoir qu'il peut ouvrir son service.

A votre avis OpenStreetMap devrait-il ouvrir son service au cross-site XHR ?

Commentaires

1. Le lundi 5 octobre 2009, 14:23 par Nicolas F.

Pas mal, mais encore une fois, inutilisable tant que les autres navigateurs ne s'y mettent pas (IE par ex. ;).

2. Le lundi 5 octobre 2009, 17:31 par ReLuc

Firefox représente plus d'un quart du marché de plus cette fonctionnalité est une norme.

Il faut donc que les développeurs Web fasse pression sur les éditeurs (MS, Google, Apple) pour que cette fonctionnalité et d'autres soient supportés.

3. Le mardi 6 octobre 2009, 11:12 par Guillaume

Hello,
Je préfère "proxyter". C'est plus sûr, plus stable et indépendant de la configuration du client. Par ailleurs, ça permet de prendre la main sur le flux et éventuellement de le transformer à la volée, de le mettre en cache etc.

4. Le mardi 6 octobre 2009, 20:22 par René-luc D'Hont

A part pour le caching, se ont des choses que l'on peut faire en JavaScript ;-)