Как использовать Fetch API для запроса GET - PullRequest
0 голосов
/ 17 июня 2020

Я хочу GET JSON с конечной точки https://api.brawlstars.com/v1/brawlers.

(https://api.brawlstars.com/v1/brawlers?Authorization= "Bearer% 20 [My API Key]")

Вот мой код:

let url = 'https://api.brawlstars.com/v1/brawlers'
    fetch(url, {
        method: "GET",
        headers: {
            "Authorization": "Bearer **USER'S API KEY GOES HERE**"
        }
    }).then((response) => {
        let json = response.json();
        console.log(json);
    }).catch((err) => {
        console.error(err)
    });

Это результат (ошибка):

Access to fetch at 'https://api.brawlstars.com/v1/brawlers' from origin 'http://127.0.0.1:8887' 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.
sketch.js:3 GET https://api.brawlstars.com/v1/brawlers net::ERR_FAILED
127.0.0.1/:1 Uncaught (in promise) TypeError: Failed to fetch

Что мне не хватает?

1 Ответ

0 голосов
/ 17 июня 2020

В заголовке вам нужно включить CORS, как сказал CBroe:

  headers.append('Access-Control-Allow-Origin', 'http://127.0.0.1:8887');
  headers.append('Access-Control-Allow-Credentials', 'true');

Изменить:

Сервер (на который отправляется запрос POST) должен включать Access-Control-Allow-Headers заголовок (et c) в своем ответе. Включение их в ваш запрос от клиента не имеет никакого эффекта.

Это потому, что сервер должен указать, что он принимает запросы из разных источников (и что он разрешает заголовок запроса Content-Type, и т. on) - клиент не может решить для себя, что данный сервер должен разрешать CORS.

...