Search code examples
javascriptjsonheaderfetch-api

Accessing [Symbol(Response internals)] from JSON response


I'm using the library isomorphic-unfetch (https://www.npmjs.com/package/isomorphic-unfetch) to get JSON data from a Rest API. This is how I make the request:

    const res = await fetch(
      `url`
    );

To access the body I simply need to do

    const response = await res.json()

But how do I access the response headers? If I log the response to my server's console this is what I see:

Response {
  size: 0,
  timeout: 0,
  [Symbol(Body internals)]: {
    // stuff
  },
  [Symbol(Response internals)]: {
    url: 'request url',
    status: 200,
    statusText: 'OK',
    headers: Headers { [Symbol(map)]: [Object: null prototype] },
    counter: 0
  }
}

What's Symbol(Response internals)? And how do I access its headers property?


Solution

  • To access its headers use one of the following:

    const res = await fetch(url);
    console.log(res.headers.get('content-type');
    // or
    res.headers.forEach(header => console.log(header));
    

    https://github.github.io/fetch/#Headers