Плагин Chrome не работает для отключения ограничений CORS или что-то не так с моим запросом - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь создать приложение, которое использует 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 путем настройки заголовков запросов. Но я не могу заставить его работать.

enter image description here

На изображении вы видите, что у меня установлено расширение "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

Кто подскажет, что мешает мне делать запросы?

1 Ответ

1 голос
/ 22 октября 2019

Вы не можете устанавливать заголовки CORS с помощью javascript. Заголовки cors также должны быть заголовками ответа, а не запроса. Подумайте об использовании API-прокси. Здесь - пример локального развития.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...