fetch not defined in Safari (ReferenceError: Can't find variable: fetch)

zlwaterfield picture zlwaterfield · Mar 6, 2016 · Viewed 18.1k times · Source

For some reason fetch (https://fetch.spec.whatwg.org/) is not defined in Safari (Version 9.0.3), does anyone know why? It seems to be the standard and works fine in Chrome and Firefox. Can't seem to find anyone else having the same issue

I am using react with redux and here is some example code:

export function fetchData (url) {
  return dispatch => {
    dispatch(loading())
    fetch(url, {
      method: 'GET'
    })
    .then(response => {
      response.json()
      .then(data => {
        dispatch(success(data))
      })
    })
  }
}

Answer

Dmitriy picture Dmitriy · Mar 6, 2016

You can use https://github.com/github/fetch polyfill for unsupported browsers.

npm install whatwg-fetch --save; 

Edit: (per the comments)

add

import 'whatwg-fetch'; 

in each file before using fetch – oliviergg