Bonjour à toutes et à tous,

Je viens vous poser une question qui est certainement terriblement basique, mais je ne parviens à trouver la solution et ça me rend bientôt fou.

J'aimerai créer une fonction JS dans laquelle s'exécute une requête AJAX visant à récupérer des données que je veux utiliser par la suite.

J'ai le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
function ajaxBase(cible) {
    const xhr = new XMLHttpRequest();
    xhr.open("get", `${cible}`, true);
    xhr.send();
    xhr.onload = function () {
        if (this.status === 200) {
            const data = JSON.parse(this.responseText);
            return data;
        }
    };
}
J'aimerai pouvoir faire appel à ma fonction "ajaxBase()" dans ma page JS pour récupérer les données et les gérer ensuite comme bon me semble en écrivant qqch comme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
const donneesRecues = ajaxBase('page.txt');
Sauf que je n'y arrive pas. Le "return data" de ma fonction callback ne m'est pas retourné et ma variable "const donneesRecues" reste donc désespérément "undefined". La solution est certainement évidente, mais elle m'échappe. Je sais que le "return data;" ne fonctionne pas car il est au sein de la fonction callback, mais lorsque je le place hors de celle-ci, la variable "data" n'est plus dans la portée et n'existe pas.

Merci d'avance si vous êtes en mesure de m'aider.

Thufir Hawat