2
J'ai des difficultés à accéder aux données dans une connexion ajax. Je ne sais pas quel est le problème avec mon code. Il semble que cela n'atteigne jamais la 2ème fonction. Des idées?AJAX avec fonctions de rappel
function fetchgps(callback)
{
var url = "http://www.instamapper.com/api?action=getPositions&key=584014439054448247";
var myRequest = new XMLHttpRequest();
myRequest.onload = function(e) {xml_loaded(e, myRequest, callback);}
myRequest.open("GET", url);
myRequest.setRequestHeader("Cache-Control", "no-cache");
myRequest.setRequestHeader("wx", "385");
myRequest.send(null);
return myRequest;
}
function xml_loaded(event, request, callback)
{
if (request.responseText){
var obj = {error:false, errorString:null}
var data = myRequest.responseText;
collected=data.split(","); //parses the data delimited by comma and put data into array
obj.latitude = collected[4];
obj.longitude = collected[5];
callback(obj);
}
else
{
callback ({error:true, errorString:"XML request failed. no responseXML"}); //Could be any number of things..
}
}
function dealwithgps(obj)
{
lat = obj.latitude;
lon = obj.longitude;
document.write(lon);
document.write(lat);
}
fetchgps(dealwithgps);
Essayé déjà ... Je reçois une erreur du navigateur .... « Les données nécessaires pour effectuer cette opération est pas encore disponible » – cameron213
Vous devra chech pour myRequest.readystate et seulement faire le traitement lorsque l'état prêt est 4. Vérifiez ma réponse. – naikus
Cela m'a au moins appris que j'étais avant. J'ai ajouté ceci si ((request.readyState == 4) && (request.status == 200) .Mais je n'atteins pas ces états et jette une erreur au callback.Sais pas pourquoi, si je le fais un différent – cameron213