Récupération donnée Ajax, qui ne marche pas, qui ne marche pas

Résolu
Leo98 -  
 Leo98 -
Bonjour, j'essaye faire ça, mais ça ne marche pas, je comprends qu'il y a un problème synchrone/asynchrone, mais j'ai besoin faire, et en plus, je ne dois pas utiliser then ou autre chose, j'ai besoin avoir le contenu dans la variable.
Si vous connaissez comment faire, s'il vous plaît, aidez moi, merci par avance pour votre future aide.

function getData(url) {
    var xhr = new XMLHttpRequest;

    xhr.open("GET", url);
    xhr.send();
    xhr.onreadystatechange = function(){
        if (this.readyState == 4 && this.status == 200) {
return xhr.responseText;
      };
   }
}

let datas = getData('http://localhost/jsTest/test.php');

console.log(datas); // Ça doit afficher le contenu test.php

EDIT : Ajout des balises de code

Cordialement,

1 réponse

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
     
    Bonjour,

    Pourquoi pas
        xhr.open("GET", url, false); // `false` makes the request synchronous
    


    et à la place du onreadyState
    if (xhr.status === 200) {
      return xhr.responseText;
    }
    
    1
    1. Leo98
       
      Bonjour, merci pour votre réponse rapide, et merci pour cette solution, ça fait plusieurs jours que recherche.
      Par contre est ce que ça peut poser un problème, voici le message d'erreur : '[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.' ?

      Une question, est ce qu'on peut faire la même chose sur la fonction fetch ?


      Merci, par avance, vous m'avez beaucoup aidé.


      Cordialement,
      0
      1. Leo98 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci beaucoup :)
        0