• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

React Fetch mode: 'no-cors' - problem z pobraniem danych

Object Storage Arubacloud
0 głosów
1,493 wizyt
pytanie zadane 3 marca 2020 w JavaScript przez Wojtek Ćwiklik Nowicjusz (120 p.)

Witam.
Nie mogę pobrać danych z API, podobne funkcje bez moda 'no-cors', gdzie nie było to koniecznie działały mi normalnie. Kod wygląda tak

fetch('https://api.hitbtc.com/api/2/public/currency/BTC', {
      mode: 'no-cors'
    })
      .then(res => res.json())
      .then(data => {
        console.log(data.id);
      })

Wyrzuca błąd "Unhandled Rejection (SyntaxError): Unexpected end of input". To samo jak dam data[0].id.
To Api wymaga mode: 'no-cors' w przeciwnym razie wywala błąd "Has been blocked by CORS policy".
Korzystałem już z innych API bez tego 'no-cors' i taki sposób miałem dostęp do danych i teraz nie wiem gdzie robię błąd. 

2 odpowiedzi

+1 głos
odpowiedź 5 marca 2020 przez Comandeer Guru (600,810 p.)

W trybie no-cors nie ma dostępu do odpowiedzi (byłoby to naruszenie bezpieczeństwa). Musiałbyś użyć jakieś skryptu backendowego jako proxy, które pobierałoby dane z API. Wówczas Twój skrypt komunikowałby się z takim skryptem-proxy, a dopiero on faktycznie pobierałby dane. Albo możesz skorzystać z usługi typu https://cors-anywhere.herokuapp.com/

0 głosów
odpowiedź 5 marca 2020 przez wallgravve Nowicjusz (200 p.)

Możesz też postawić serwer np. w nodzie i w expresie chyba masz dostępne coś takiego 

    app.use(function(request, response, next) {
        response.header("Access-Control-Allow-Origin", "*");
        response.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
        next();
    });

w nodzie, jest jeszcze biblioteka cors która też może Ci pomóc. U mnie działa, choć pewnie są lepsze rozwiązania tego problemu. Jeżeli chcesz obyć się bez backendu, pewnie musisz poustawiać coś w headerze

Podobne pytania

0 głosów
1 odpowiedź 422 wizyt
pytanie zadane 25 września 2019 w JavaScript przez Mariusz Podgórski Początkujący (400 p.)
0 głosów
1 odpowiedź 487 wizyt
pytanie zadane 29 kwietnia 2021 w JavaScript przez rszczepanski02 Obywatel (1,180 p.)
+1 głos
1 odpowiedź 349 wizyt
pytanie zadane 2 kwietnia 2021 w JavaScript przez Oskar Szkurłat Bywalec (2,780 p.)

92,556 zapytań

141,403 odpowiedzi

319,559 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...