Bonjour,
J’essaye d’écrire un script qui effectue une requête vers mon profil et affiche le code source de mon profil dans la console.
L’intérêt est purement pédagogique, c’est pour me familiariser avec l’objet GM_xmlHttpRequest.
Toute la difficulté, c’est de réaliser une requête synchrone… qui fonctionne !
J’ai l’impression que mon script est OK mais la requête reste malgré tout asynchrone.
Mon script renvoie toujours "Échec de la requête !".
Une idée d’où pourrait venir le problème ?
En cherchant sur des forums, ça parle de récupérer le retour de GM_xmlhttpRequest().
Le problème, c’est que chez moi, le retour ne fonctionne pas et la documentation indique bien undefined comme valeur de retour.
C’est pourquoi je ne pense pas que ce soit la bonne solution pour réaliser une requête synchrone.
Code source du script :
// ==UserScript==
// @name GreenCheckProfile
// @description Script pour apprendre à utiliser GM_xmlhttpRequest()
// @match https://zestedesavoir.com/*
// @grant GM_xmlhttpRequest
// @connect zestedesavoir.com
// ==/UserScript==
// Uniquement pour aider au debugage
'use strict';
// Envoie une requête vers 'url' et en récupère le texte brut
// L'objectif est d'avoir une requête synchrone
function myRequest(url, callback) {
let request = {
method: "GET",
url: 'https://zestedesavoir.com/' + url,
// L'instruction-clef qui ne fonctionne pas :
synchronous: true,
onload: function(response) {
callback(response.responseText);
}
};
GM_xmlhttpRequest(request);
}
(() => {
let result = '';
myRequest("membres/voir/Green/", (data) => {
result = data;
});
// Si la requête précédente est synchrone,
// 'result' contient le texte brut de mon profil
if (result !== '') {
console.log('--- Result ---\n' + result);
}
else {
alert('Échec de la requête !');
}
})();