new Request() în JavaScript

Cereri HTTP și comunicare Browserele moderne, Node.js 18+

Descrie o cerere HTTP ca obiect (adresă, metodă, antete, corp), pe care o dai apoi lui fetch.

Sintaxă
const cerere = new Request(url, { method, headers, body, signal });
await fetch(cerere)

Ce face new Request()

new Request(url, optiuni) primește aceiași parametri ca fetch, dar nu trimite nimic: doar creează obiectul. Este util când pregătești cererea într-un loc și o trimiți în altul, sau în service workers, unde primești cererile ca obiecte Request.

Obiectul are proprietățile url, method, headers, signal și aceleași metode de citire a corpului ca Response (json(), text() etc.).

Parametri

Parametru Descriere
url Adresa, absolută (sau relativă, în browser).
optiuni Opțional. method, headers, body, signal, credentials, cache…

Ce returnează

Un obiect Request.

Exemple

Exemplul 1: O cerere POST pregătită dinainte

const cerere = new Request("https://api.exemplu.ro/abonari", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ email: "ana@exemplu.ro" }),
});

console.log(cerere.method, cerere.url);
console.log(cerere.headers.get("content-type"));
console.log(await cerere.json());

Rezultat

POST https://api.exemplu.ro/abonari
application/json
{ email: 'ana@exemplu.ro' }

Greșeli frecvente

  • Pui body la o cerere GET și primești TypeError. Datele pentru GET merg în adresă, cu URLSearchParams.

Comenzi înrudite

  • fetch: Trimite o cerere HTTP la un server și primește răspunsul, fără reîncărcarea paginii.
  • Headers: Antetele unei cereri sau ale unui răspuns HTTP, cu nume care nu țin cont de majuscule.
  • Response (json, text, blob): Răspunsul unei cereri fetch: starea, antetele și metodele care citesc conținutul ca JSON, text sau date binare.