Запрос на Spotify Token не выполняется в Chrome - PullRequest
0 голосов
/ 23 марта 2019

При запросе токена с помощью Spotify Web API в режиме «client_credentials» я получаю ответ 200 с нулевым содержимым при работе с Chrome.Тот же код отлично работает с Firefox и Opera.

Я создаю приложение на Angular7 для получения музыкальной информации из Spotify и связывания ее с реальными текстами песен.Поведение Chrome отличается от ожидаемого, когда я пытаюсь получить токен для запроса Spotify.Очевидно, что заголовки запроса и ответа в порядке, но ответ, где должен находиться объект токена, пуст.Поведение с Opera и Firefox, как сказано выше, прекрасно.

Метод получения токена включен в конструктор службы Spotify в приложении Angular 7:

  constructor(private http: HttpClient) { 
    const authString: string = btoa(SpotifyService.CLIENT_ID+':'+ SpotifyService.CLIENT_SECRET);
    const headers = new HttpHeaders({
      'Authorization': 'Basic ' + authString
    });

    const params = new HttpParams()
      .set('grant_type', 'client_credentials')
      .append('json', 'true');
    this.http.post(SpotifyService.URL_TOKEN, params, {headers})
      .subscribe((res: token) => {
        console.log('token: ', res.access_token);
        console.log('expires in (s):', res.expires_in);
        console.log('Object: ', res);
        this.token = res.access_token;
        this.expiration = new Date().getTime() / 1000 + res.expires_in;
        console.log('now: ', new Date().getTime() / 1000);
        console.log('expiration: ', this.expiration);
      });


  }

ответ на запрос в Chrome имеет код состояния 200 OK, но он пуст.Кроме того, у меня есть предупреждение со следующим сообщением: «Блокировка чтения из разных источников (CORB) заблокировала ответ из нескольких источников https://accounts.spotify.com/api/token с приложением MIME-типа / json» Я не знаю, связано ли это предупреждение спроблема или потому что ответ пуст.

Как уже говорилось ранее, ответ в Opera и Firefox правильно сформирован с объектом, содержащим фактический токен, как и ожидалось:

{"access_token":"BQClMOsKt1LF0--kly0XWdfxkiWhI4nNqluiiZxxxxxxxxxxxxxxxxxxxx4EZDT_mRxDSb625E-z2j4yf4","token_type":"Bearer","expires_in":3600,"scope":""}

Спасибо!

...