2016-06-23 18 views
7

Korzystanie z funkcji reagowania i pakietu internetowego. Dlaczego poniższy kod powoduje błąd: Uncaught (in promise) SyntaxError: Unexpected end of input(…)? DziękiNiepowodzenie pobierania Nieoczekiwany koniec wejścia

fetch(feedURL, {"mode": "no-cors"}) 
    .then(response => response.json()) 
    .then(function(data){ 

     this.setState({ 
      data: data 
     }) 

    }.bind(this)); 
+0

to odpowiednia odpowiedź JSON? – frankies

+1

Ponieważ nie sprawdzasz typu otrzymywanej odpowiedzi i nie ustawiasz żadnego nagłówka akceptacji, możesz nie mieć zabezpieczenia przed awarią w przypadku scenariusza, gdy otrzymana odpowiedź nie jest typu JSON. Być może jest to możliwa przyczyna problemu. –

+0

Testowanie danych surowych JSON jest prawidłowe, ale adres URL pliku przechowywanego w CDN jest nieprawidłowy. "Nieprawidłowe kodowanie, oczekiwanie na UTF-8, UTF-16 lub UTF-32." Jakieś przemyślenia na temat tego, w jaki sposób mogę to naprawić? – user14439

Odpowiedz

0

Aby lepiej zrozumieć swój błąd, dodaj przypadek zatrzymania do żądania pobrania.

Ponadto, jeśli używasz funkcji strzałek, nie musisz wiązać (this);

fetch(feedURL, {"mode": "no-cors"}) 
.then(response => response.json()) 
.then(data => { 
    this.setState({ 
     data: data 
    }); 
}) 
.catch(resp => { 
    console.error(resp); 
}); 
Powiązane problemy