hae API JavaScriptissä esimerkkien avulla

JavaScript fetch()> menetelmä, jota käytetään resurssien hakemiseen palvelimelta. Se palauttaa Promisen, joka ratkaisee Response-objektin, joka kapseloi palvelimen vastauksen pyyntöön. fetch()> helpottaa sekä GET-pyyntöjen tekemistä, joita tyypillisesti käytetään tietojen hakemiseen, että LÄHETTÄÄ pyyntöjä, joita käytetään tietojen lähettämiseen palvelimille.

Lisäksi, fetch()> integroi saumattomasti edistyneet HTTP toimintoja, kuten Cross-Origin Resource Sharing (CORS) ja muut laajennukset, jotka rikastuttavat verkkokehityskokemusta parannetulla suojauksella ja yhteentoimivuudella.

Huomautus: Fetch API:n mukana tulee fetch()-menetelmä, jota käytetään tietojen hakemiseen eri lähteistä.

Syntaksi:

fetch('url') // api for the get request .then(response =>vastaus.json()) .then(data => console.log(data)); 

Parametrit:

  • URL-osoite: URL-osoite, johon pyyntö lähetetään.
  • Vaihtoehdot: Se on joukko ominaisuuksia. Se on valinnainen parametri. Saatavilla olevat vaihtoehdot ovat:
    • Menetelmä: Määrittää pyynnön HTTP-menetelmän. (voi olla GET, POST, PUT tai DELETE)
    • Otsikot
    • Runko: Tiedot lähetetään pyynnön mukana.
    • Tila: Määrittää pyyntötilan (esim. cors, nocors, samaa alkuperää jne)
    • Valtuustiedot : Määrittää, lähetetäänkö käyttäjän tunnistetiedot (evästeet, todennusotsikot jne.) pyynnön kanssa

JavaScript fetch() -menetelmäesimerkkejä

Katsotaanpa joitain esimerkkejä hakumenetelmästä. Nämä esimerkit antavat sinulle täydellisen käsityksen JavaScriptin hakumenetelmästä.

1 . Hae pyyntö Fetchillä

Tämä esimerkki näyttää, kuinka saada pyyntö hakumenetelmässä.

Huomautus: Ilman vaihtoehtoja Fetch toimii aina hakupyyntönä.

Javascript
// API for get requests let fetchRes = fetch( 'https://jsonplaceholder.typicode.com/todos/1');   // FetchRes is the promise to resolve // it by using.then() method fetchRes.then(res =>res.json()).then(d => { console.log(d) }) 

Lähtö:

Selitys:

  1. JS-fetch()-funktiota käytetään GET-pyynnön lähettämiseen URL-osoitteeseen https://jsonplaceholder.typicode.com/todos/1. Tämä funktio palauttaa lupauksen, joka ratkaisee vastausobjektin, joka edustaa vastausta pyyntöön.
  2. Menetelmä then() on ketjutettu fetch()-kutsuun käsitelläkseen vastausta asynkronisesti. Kanavalle then() välitetyn takaisinkutsun sisällä res.json()-menetelmää kutsutaan jäsentämään vastauksen runko JSON-muodossa. Tämä menetelmä palauttaa myös lupauksen, joka ratkaisee jäsennetyt JSON-tiedot.
  3. Toinen then()-menetelmä on ketjutettu käsittelemään jäsennettyjä JSON-tietoja. Sen takaisinsoittotoiminnon sisällä jäsennetyt JSON-tiedot d kirjataan konsoliin käyttämällä console.log()

2 . Hae JSON-tietojen lähettämiseen

Tässä esimerkissä olemme ladanneet JSON-tiedot JavaScriptin fetch()-sovellusliittymän avulla. Voit määrittää pyynnön runkotekstiksi JSON-joustetun version tiedoistasi ja määrittää sopivat otsikot osoittamaan, että lähetät JSON-koodin.

Postituspyyntöjä voidaan tehdä hakutoiminnolla antamalla alla annetut vaihtoehdot:

let options = { method: 'POST', headers: { 'Content-Type': 'application/json;charset=utf-8' }, body: JSON.stringify(data) } 

Kun olet tarkistanut lähetyspyynnön syntaksin, katso alla olevaa esimerkkiä, joka osoittaa lähetyspyynnön käytön hakumenetelmässä.

Javascript
// Your JSON data const jsonData = { key1: 'value1', key2: 'value2' }; // Set up options for the fetch request const options = {  method: 'POST',  headers: {  'Content-Type': 'application/json' // Set content type to JSON  },  body: JSON.stringify(jsonData) // Convert JSON data to a string and set it as the request body }; // Make the fetch request with the provided options fetch('https://api.example.com/upload', options)  .then(response =>{ // Tarkista onnistuiko pyyntö if (!response.ok) { throw new Error('Verkon vastaus ei ollut ok');  } // Jäsennä vastaus muodossa JSON return response.json();  }) .then(data => { // Käsittele JSON-dataa console.log(data); }) .catch(error => { // Käsittele haun aikana ilmenneet virheet console.error('Fetch error: ', virhe });>>   

Selitys:

  • Määrittelemme JSON-tietosi.
  • Määritimme noutopyynnölle vaihtoehdot, mukaan lukien menetelmän POST, Content-Type-otsikon asetukseksi sovellus/json ja rungon datasi JSON-jonotettuun versioon.
  • Teemme hakupyynnön annetuilla vaihtoehdoilla käyttämällä fetch()-funktiota.
  • Muu osa koodista pysyy samana kuin ennenkin, ja se käsittelee vastauksen ja mahdolliset virheet noudon aikana.

3. Hakupyynnön keskeyttäminen

Voit käyttää AbortController ja AbortSignal-liitäntä peruuttaaksesi JavaScriptin hakupyynnön.

Javascript { controller.abort(); // Keskeytä hakupyyntö console.log('Hakupyyntö aikakatkaistiin'); }, 5000); // Käsittele hakupyyntö fetchPromise .then(response => { // Tarkista onnistuiko pyyntö if (!response.ok) { throw new Error('Verkkovastaus ei ollut ok'); } // Jäsennä vastaus JSON-muodossa return response.json(); fetch console.error('Hae virhe:', virhe }) .finally(() => { clearTimeout(timeoutId); // Tyhjennä aikakatkaisu });>>

Selitys:

  • Luomme uuden AbortController-esiintymän ja hankimme sen signaalin.
  • Teemme noutopyynnön käyttämällä fetch()-toimintoa tarjotuilla vaihtoehdoilla.
  • Asetamme 5 sekunnin aikakatkaisun käyttämällä setTimeout()-komentoa noutopyynnön keskeyttämiseksi, jos se kestää liian kauan.
  • Aikakatkaisun takaisinkutsun sisällä kutsumme controller.abort()-komentoa peruuttaaksemme hakupyynnön.
  • Käsittelemme noutopyynnön tavalliseen tapaan, mukaan lukien vastauksen jäsentämisen ja mahdollisten virheiden käsittelyn.
  • Lopuksi final()-lohkossa tyhjennämme aikakatkaisun käyttämällä clearTimeout()-komentoa estääksemme aikakatkaisun laukeamisen, jos hakupyyntö valmistuu ennen aikakatkaisun umpeutumista.

Pyynnön lähettäminen Sisältää valtuustiedot

Voit lähettää pyynnön, joka sisältää valtuustiedot, kuten keksit , noutopyynnössä voit määrittää tunnistetiedot sisällytettäväksi.

fetch('https://example.com', { credentials: 'include', }); 

Jos haluat lähettää tunnistetiedot vain, jos pyynnön URL-osoite on samassa alkuperässä kuin kutsuvan skriptin, lisää tunnistetiedot: 'sama-alkuperä'.

JavaScript fetch() -menetelmän käyttötapaukset

Tässä on joitain hakumenetelmän käyttötapauksia. Nämä ovat yleisiä ongelmia, joita aloittelevat kehittäjät kohtaavat, kun he työskentelevät haulla.

1. JavaScript Fetch API:n käyttäminen tietojen hankkimiseen

JavaScript Get -pyyntöä käytetään tietojen hakemiseen palvelimelta. Jos haluat käyttää Fetch API:ta JavaScriptissä tietojen saamiseksi palvelimelta, voit tehdä GET-pyynnön haluttuun URL-osoitteeseen ja käsitellä vastausta.

2. Hanki ja lähetä -menetelmä Fetch API:lla

Fetch()-menetelmää voidaan käyttää minkä tahansa tyyppisten pyyntöjen kanssa, kuten LÄHETTÄÄ , SAADA , LAITTAA, ja POISTAA , GET-menetelmä käyttää fetch API:ta

3. Ero Fetch:n ja Axiosin välillä http-pyyntöjen tekemisessä

Axios on itsenäinen kolmannen osapuolen paketti, joka voidaan asentaa helposti ja Fetch on sisäänrakennettu useimpiin nykyaikaisiin selaimiin. asennusta ei vaadita sellaisenaan.

Tuetut selaimet:

JavaScript Fetch on ECMAScript6 (ES6) ominaisuus ja sitä tuetaan melkein kaikissa nykyaikaisissa selaimissa, kuten:

  • Google Chrome
  • Reuna
  • Firefox
  • Ooppera
  • Safari