Bonjour,
J'essaye de récupérer des données en AJAX, à l'aide de jQuery. Ma fonction récupère la géolocalisation du navigateur, puis envoie une requête REST sur les serveurs de GeoNames pour pouvoir avoir la ville et le pays du visiteur du site. Voici mon code :
Sous Firefox ou Chrome, le code passe impeccable. Mais avec Internet Explorer 9 j'ai droit au message :
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 // Récupère l'adresse du visiteur function recupererAdresse() { // Affiche la barre de chargement $("#parcours").html("<img src=\"chargement.gif\" alt=\"Chargement...\" />"); if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(recupererPosition, erreurPositionnement); } else { alert("La g\351olocalisation n\'est pas support\351e par votre navigateur."); // Arrête l'affichage de la barre de chargement $("#parcours").empty(); } } // Récupère la position du visiteur function recupererPosition(position) { jQuery.support.cors = true; $.ajax( { // Paramètre la requête AJAX url : "http://ws.geonames.org/findNearbyPlaceName", dataType : "xml", data : { lang : "fr", type : "xml", lat : position.coords.latitude, lng : position.coords.longitude }, beforeSend : function() { // Affiche la barre de chargement $("#parcours").html("<img src=\"chargement.gif\" alt=\"Chargement...\" />"); }, success : function(resultat) { // Arrête l'affichage de la barre de chargement $("#parcours").empty(); // Récupère les informations reçu via GeoName.org $("#rue").val(""); $("#ville").val($(resultat).find("name").text()); $("#pays").val($(resultat).find("countryName").text()); }, error : function(xhr, ajaxOptions, thrownError) { // Arrête l'affichage de la barre de chargement $("#parcours").empty(); // Affiche le message d'erreur alert("Une erreur c\'est produite :\n" + thrownError + "."); } }); }; // Affiche un message s'il y a une erreur de positionnement function erreurPositionnement(erreur) { switch(erreur.code) { case erreur.PERMISSION_DENIED: alert("L\'utilisateur a refus\351 la demande de g\351olocalisation."); break; case erreur.POSITION_UNAVAILABLE: alert("L\'information de localisation est indisponible."); break; case erreur.TIMEOUT: alert("La demande de localisation de l\'utilisateur a expir\351."); break; case erreur.UNKNOWN_ERROR: alert("Une erreur inconnue c\'est produite."); break; } }
Ou :Une erreur c'est produite :
No Transport.
Si j'ajoute la ligne :Une erreur c'est produite :
Error: Accès refusé.
Avant d'exécuter ma requête, comme préconisé dans le ticket #10660 de jQuery.
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part jQuery.support.cors = true;
Quelqu'un pourrait éclairer ma lanterne sur ce bogue d'Internet Explorer ?![]()
Partager