Sono senza parole ChatGPT
Così tanto per provare, senza aspettarmi chissà cosa, gli ho chiesto " crea una classe javascript per gestire delle chiamate ajax " e in un paio di secondi mi ha buttato giù questo codice con tanto di spiegazione.
Certo! Ecco una semplice classe JavaScript che gestisce le chiamate AJAX utilizzando l'oggetto
XMLHttpRequest
. Questa classe permette di effettuare richieste GET e POST.
class AjaxHandler {
constructor() {
this.xhr = new XMLHttpRequest();
}
// Metodo per effettuare una richiesta GET
get(url, callback) {
this.xhr.open('GET', url, true);
this.xhr.onload = () => {
if (this.xhr.status >= 200 && this.xhr.status < 300) {
callback(null, JSON.parse(this.xhr.responseText));
} else {
callback(`Error: ${this.xhr.status} ${this.xhr.statusText}`);
}
};
this.xhr.onerror = () => {
callback('Request failed');
};
this.xhr.send();
}
// Metodo per effettuare una richiesta POST
post(url, data, callback) {
this.xhr.open('POST', url, true);
this.xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
this.xhr.onload = () => {
if (this.xhr.status >= 200 && this.xhr.status < 300) {
callback(null, JSON.parse(this.xhr.responseText));
} else {
callback(`Error: ${this.xhr.status} ${this.xhr.statusText}`);
}
};
this.xhr.onerror = () => {
callback('Request failed');
};
this.xhr.send(JSON.stringify(data));
}
}
// Utilizzo della classe
const ajax = new AjaxHandler();
// Esempio di richiesta GET
ajax.get('https://api.example.com/data', (error, response) => {
if (error) {
console.error(error);
} else {
console.log('Response GET:', response);
}
});
// Esempio di richiesta POST
const postData = {name: 'John', age: 30};
ajax.post('https://api.example.com/data', postData, (error, response) => {
if (error) {
console.error(error);
} else {
console.log('Response POST:', response);
}
});
Spiegazione della classe
Costruttore: Inizializza un'istanza di
XMLHttpRequest
.Metodo
get(url, callback)
: Effettua una richiesta GET all'URL specificato e chiama ilcallback
con i dati ricevuti o un errore in caso di fallimento.Metodo
post(url, data, callback)
: Effettua una richiesta POST all'URL specificato. I dati devono essere forniti come oggetto JavaScript, e vengono convertiti in JSON prima di essere inviati.Gestione degli errori: In entrambi i metodi, se la richiesta ha successo, il
callback
viene chiamato con i dati; altrimenti, viene passato un messaggio di errore.
Puoi utilizzare questa classe per gestire le chiamate AJAX nel tuo progetto. Assicurati di sostituire gli URL di esempio con quelli reali della tua API.