При запросе токена с помощью 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":""}
Спасибо!