Junior
Milyen eszközöket használ a szerverrel való kommunikációhoz?
sobes.tech MI
Válasz az MI-től
-
XMLHttpRequest (XHR):
const xhr = new XMLHttpRequest(); xhr.open('GET', '/api/data', igaz); // Kérés beállítása xhr.onload = function() { if (xhr.status >= 200 && xhr.status < 400) { const data = JSON.parse(xhr.responseText); // Sikeres válasz feldolgozása console.log(data); } else { // Hibák kezelése console.error('Hiba a kérés során:', xhr.status); } }; xhr.onerror = function() { // Hálózati hibák kezelése console.error('Hálózati hiba'); }; xhr.send(); // Kérés küldése -
Fetch API:
fetch('/api/data') .then(response => { if (!response.ok) { throw new Error('HTTP státusz ' + response.status); // HTTP hibák kezelése } return response.json(); // JSON elemzése }) .then(data => { console.log(data); // Adatok feldolgozása }) .catch(error => { console.error('Hiba a kérés során:', error); // Egyéb hibák kezelése }); -
Fetch vagy XHR alapú könyvtárak:
- Axios:
// Axios telepítése: npm install axios import axios from 'axios'; axios.get('/api/data') .then(response => { console.log(response.data); // Az adatok elérése .data segítségével }) .catch(error => { console.error('Hiba a kérés során:', error); // Hibák kezelése }); - jQuery.ajax: (Ha jQuery-t használnak)
// Jquery könyvtár szükséges $.ajax({ url: '/api/data', method: 'GET', dataType: 'json', // Várt adat típus success: function(data) { console.log(data); // Sikeres válasz feldolgozása }, error: function(jqXHR, textStatus, errorThrown) { console.error('Hiba a kérés során:', textStatus, errorThrown); // Hibák kezelése } });
- Axios:
-
WebSocket-ek: Kétirányú kommunikáció valós időben.
const socket = new WebSocket('ws://localhost:8080'); // Kapcsolódás WebSocket szerverhez socket.onopen = function(event) { console.log('WebSocket kapcsolódva'); // Kapcsolódási esemény socket.send('Üdvözlet a klienstől!'); // Üzenet küldése }; socket.onmessage = function(event) { console.log('Üzenet érkezett a szervertől:', event.data); // Üzenet fogadása }; socket.onerror = function(event) { console.error('WebSocket hiba:', event); // Hiba esemény }; socket.onclose = function(event) { if (event.wasClean) { console.log('Tiszta zárás, kód=' + event.code + ' ok=' + event.reason); } else { console.error('Kapcsolat megszakadt'); // Például a szerver folyamatának leállítása } }; // Kapcsolat lezárása // socket.close();
A eszköz kiválasztása a projekt követelményeitől, a promise-kkel való munkától, a kérések kezelésének kényelmétől és a további funkcióktól (átjárók, kérés megszakítása Axios stb.) függ. A Fetch API a modern szabvány az aszinkron kérésekhez, az Axios pedig egy erőteljes könyvtár, amely további lehetőségeket kínál. Az XHR-t ritkábban használják új projektekben, de fontos az alapok megértéséhez. A WebSocket-ek elengedhetetlenek az interaktív alkalmazásokhoz, amelyek valós idejű adatcserét igényelnek.