2016-03-06 16 views
18

Z jakiegoś powodu fetch (https://fetch.spec.whatwg.org/) nie jest zdefiniowany w Safari (wersja 9.0.3), czy ktoś wie, dlaczego? Wydaje się być standardem i działa dobrze w Chrome i Firefox. Nie wydaje się znaleźć nikogo innego, mający ten sam problemNie zdefiniowano pobierania w Safari (błąd odwołania: nie można znaleźć zmiennej: pobierz)

Używam reagują z Redux i tu jest jakiś przykładowy kod:

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

http://caniuse.com/#search=fetch 'fetch' nie jest obsługiwany przez Safari. –

Odpowiedz

29

Można użyć https://github.com/github/fetch PolyFill dla nieobsługiwanych przeglądarek.

npm install whatwg-fetch --save; 

Edycja: (za komentarzach)

dodać

import 'whatwg-fetch'; 

w każdym pliku przed użyciem sprowadzić - oliviergg

+0

Dzięki, powinienem wiedzieć. – zlwaterfield

+0

Używam tego (również polyfill es6-obietnica), ale wciąż otrzymuję ten sam błąd podczas przeglądania go na iOS. – Nickvda

+0

(Brak edycji dla komentarzy ..): Zdjęcie Androida ma ten sam problem. – Nickvda

2

Zastosowanie whatwg-fetch polyfill. Jeśli używasz webpack, można po prostu dodać go do punktu wejścia

entry: { 
    app: ['whatwg-fetch', 'your-index.js'] 
}