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

Problem z fetchowaniem zewnętrznego API " Access to fetch at "<link> from origin 'null' has been blocked by CORS policy"

Object Storage Arubacloud
0 głosów
841 wizyt
pytanie zadane 4 października 2020 w JavaScript przez sparklemo7ion Początkujący (360 p.)
edycja 4 października 2020 przez ScriptyChris

Cześć, chciałbym uzyskać dostęp do danych z tego https://www.goodreads.com/api API. Przykładowo chciałbym wyświetlić książki danego autora Przykładowe dane

W dokumentacji API pisze, że powinienem podać 3 parametry: 

  • id: Goodreads Author id (required)
  • page: 1-N (default 1)

Developer key już uzyskałem, a to mój kod: 

fetch(
        "https://www.goodreads.com/author/list.xml?" +
          new URLSearchParams({
            key: "API_KEY",
            id: 1850,
            page: 1,
          })
      )
        .then((res) => res.text())
        .then((str) => new window.DOMParser().parseFromString(str, "text/xml"))
        .then((data) => console.log(data));

w konsoli dostaję błąd: Access to fetch at 'https://www.goodreads.com/author/list.xml?key=API_KEY&id=1850&page=1' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

 

Ktoś wie jak to naprawić i uzyskać dostęp do tych danych? 

1 odpowiedź

+2 głosów
odpowiedź 4 października 2020 przez Comandeer Guru (602,560 p.)
wybrane 4 października 2020 przez sparklemo7ion
 
Najlepsza

Komunikat wskazuje na to, że odpalasz plik z dysku. Ajax działa tylko dla plików odpalonych z serwera, więc najlepiej wyposażyć się w takowy, np. przy pomocy XAMPP-a.

Niemniej to i tak nie rozwiązuje problemu, bo GoodReads nie przesyłają odpowiedniego nagłówka, który by pozwalał na pobieranie danych Ajaksem. Zostaje zatem albo skorzystanie z własnego serwera i pobranie danych przy jego pomocy, albo usługi pokroju https://cors-anywhere.herokuapp.com/

PS nie ujawniaj swojego klucza developerskiego na forum.

komentarz 4 października 2020 przez ScriptyChris Mędrzec (190,190 p.)

PS nie ujawniaj swojego klucza developerskiego na forum.

(wyciąłem) 

Podobne pytania

+1 głos
0 odpowiedzi 424 wizyt
pytanie zadane 29 kwietnia 2020 w JavaScript przez Rafixstan. Obywatel (1,070 p.)
0 głosów
0 odpowiedzi 577 wizyt
0 głosów
1 odpowiedź 176 wizyt
pytanie zadane 7 stycznia 2020 w JavaScript przez saseta00 Użytkownik (700 p.)

92,689 zapytań

141,601 odpowiedzi

320,091 komentarzy

62,048 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

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!

...