En fait je crois que le problème vient du fait que je n'arrive pas à récupérer l'objet JSON ou XML.
L'URL est bonne :
$url="https://maps.googleapis.com/maps/api/timezone/xml?location="+pos.coords.latitude+","+pos.coords.longitude+"&timestamp="+Math.round(new Date().getTime() / 1000)+"&sensor=false";
et cela affiche :
https://maps.googleapis.com/maps/api...2&sensor=false
et j'ai testé l'URL dans mon navigateur qui me renvoie l'objet que je veut récupérer :
1 2 3 4 5 6 7
| <TimeZoneResponse>
<status>OK</status>
<raw_offset>36000.0000000</raw_offset>
<dst_offset>3600.0000000</dst_offset>
<time_zone_id>Australia/Sydney</time_zone_id>
<time_zone_name>Australian Eastern Daylight Time</time_zone_name>
</TimeZoneResponse> |
Pareil pour JSON.
Mais quand je veut afficher mes données (la "time_zone_name" en particulier), je m'aperçoit que le status de ma requête est INVALID_REQUEST
Pour JSON, j'ai essayer d'utiliser le code de la page wikipedia sur laquelle renvoie la page d'aide Google et ça donnait ça :
1 2 3 4 5 6 7 8 9
| ttp_request = new XMLHttpRequest();
http_request.open("GET", url, true);
http_request.onreadystatechange = function () {
var done = 4, ok = 200;
if (http_request.readyState === done && http_request.status === ok) {
my_JSON_object = JSON.parse('''http_request.responseText'''); // avec unexpected token ";" sur cette ligne
}
};
http_request.send(null); |
puis j'ai essayé en utilisant JQuery mais sans plus de succès (désolé j'ai effacé le code que j'avais écrit).
En XML j'ai utilisé ce code :
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
| var xhr;
try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
catch (e)
{
try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
catch (e2)
{
try { xhr = new XMLHttpRequest(); }
catch (e3) { xhr = false; }
}
}
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4)
{
if(xhr.status == 200)
$("#timezone").html("Received:" + xhr.responseText);
else
document.ajax.dyn="Error code " + xhr.status;
}
};
$url="https://maps.googleapis.com/maps/api/timezone/xml?location="+pos.coords.latitude+","+pos.coords.longitude+"&timestamp="+Math.round(new Date().getTime() / 1000)+"&sensor=false";
xhr.open( "GET", $url, true);
xhr.send(null); |
mais le $("#timezone").html("Received:" + xhr.responseText); m'affiche "Received: INVALID_REQUEST"
J'espère que j'ai donné assez d'info.
Merci d'avance
Partager