Sobes.tech
Junior

Τι δέχεται η μέθοδος fetch;

sobes.tech AI

Απάντηση από AI

Η μέθοδος fetch δέχεται ένα υποχρεωτικό όρισμα — το μονοπάτι του αιτήματος (RequestInfo ή URL) — και ένα προαιρετικό όρισμα — ένα αντικείμενο ρυθμίσεων (RequestInit).

Υποχρεωτικό όρισμα (input) :

  • Συμβολοσειρά: το URL του πόρου.
  • Αντικείμενο Request: Αντικείμενο της κλάσης Request, που παρέχει πιο ευέλικτη διαμόρφωση του αιτήματος (επικεφαλίδες, μέθοδος κ.λπ.).

Προαιρετικό όρισμα (init) : Ένα αντικείμενο με πεδία που περιγράφουν τη διαμόρφωση του αιτήματος. Μερικά συχνά χρησιμοποιούμενα πεδία:

  • method: Μέθοδος HTTP του αιτήματος (GET, POST, PUT, DELETE, OPTIONS κ.λπ.).
  • headers: Επικεφαλίδες του αιτήματος. Μπορεί να είναι αντικείμενο κλειδιού-τιμής ή μια παρουσία της κλάσης Headers.
  • body: Το σώμα του αιτήματος (για μεθόδους διαφορετικές από GET ή HEAD). Μπορεί να είναι μια συμβολοσειρά, ArrayBuffer, TypedArray, DataView, Blob, FormData, URLSearchParams ή ReadableStream.
  • mode: Λειτουργία του αιτήματος (cors, no-cors, same-origin, navigate).
  • credentials: Ρύθμιση για την αποστολή διαπιστευτηρίων (omit, same-origin, include).
  • cache: Ρύθμιση cache (default, no-store, reload, no-cache, force-cache, only-if-cached).
  • redirect: Πώς να χειριστείτε τις ανακατευθύνσεις (follow, error, manual).
  • referrer: Τιμή για την κεφαλίδα Referer.
  • referrerPolicy: Πολιτική για την αποστολή της κεφαλίδας Referer.
  • integrity: Τιμή για την κεφαλίδα Integrity. Χρησιμοποιείται για την ακεραιότητα υπο-πόρων.
  • keepalive: Αληθής τιμή που υποδεικνύει ότι το αίτημα πρέπει να παραμείνει ενεργό μετά το κλείσιμο της σελίδας (για αποστολή αναλύσεων ή αναφορών).
  • signal: Αντικείμενο AbortSignal για ακύρωση του αιτήματος.
  • window: Το αντικείμενο Window που συσχετίζεται με το αίτημα (προεπιλογή το τρέχον παράθυρο).

Παράδειγμα χρήσης:

// Αίτημα GET
fetch('/api/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Σφάλμα:', error));

// Αίτημα POST με σώμα και επικεφαλίδες
fetch('/api/products', {
  method: 'POST', // Μέθοδος HTTP
  headers: {
    'Content-Type': 'application/json', // Τύπος δεδομένων που αποστέλλονται
    'Authorization': 'Bearer your_token' // Παράδειγμα επικεφαλίδας εξουσιοδότησης
  },
  body: JSON.stringify({ name: 'Νέο προϊόν', price: 100 }) // Σώμα αιτήματος
})
  .then(response => {
    if (!response.ok) {
      throw new Error(`Σφάλμα HTTP! κατάσταση: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log('Επιτυχία:', data))
  .catch(error => console.error('Σφάλμα:', error));