Я пытаюсь создать приложение, которое использует API сервера Jira. Мои запросы от localhost заблокированы политикой CORS.
Access to XMLHttpRequest at 'https://jira.company.com/rest/api/2/user?username=myname@company.com' from origin 'http://localhost:4200' has been blocked by CORS policy: Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.
Я прочитал это, что Расширение Chrome может обойти ограничения CORS путем настройки заголовков запросов. Но я не могу заставить его работать.
На изображении вы видите, что у меня установлено расширение "On",но запрос все еще терпит неудачу на запросе предварительной проверки OPTIONS.
Суть этого запроса также в том, что я установил Access-Control-Allow-Credentials
в true
в своих заголовках, но этот запрос предварительной проверки говорит, что он установлен на false
. Это заставляет меня думать, что с моим кодом что-то не так, потому что я также неопытен в том, чтобы делать запросы API и устанавливать заголовки и все такое.
logIn( email: string, password: string ): Observable<any> {
const authKey = btoa( `${email}:${password}` );
const headers = new HttpHeaders( {
Authorization: `basic ${authKey}`,
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials': 'true'
} );
const params = new HttpParams().set( 'username', email );
return this.http.get( 'https://jira.company.com/rest/api/2/user', { headers, params } ).pipe( map( ( user: any ) => {
if ( user ) {
localStorage.setItem( 'currentUser', JSON.stringify( { user: { authKey } } ) );
}
} ) );
}
Примечание: я создаю Angularapp
Кто подскажет, что мешает мне делать запросы?