Предварительный запрос к Jira REST API не выполнен из-за отсутствия заголовков - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь создать приложение Angular 6, которое будет взаимодействовать с Jira REST API.

Мой запрос POST для проверки подлинности завершается неудачно по предварительному запросу (OPTIONS), в соответствии с консолью из-за отсутствияheader (Access-Control-Allow-Origin).

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:5555' is therefore not allowed access.

Я думаю, что я не добавляю заголовки правильно.

Вот мой код:

export class AuthenticationService {

  readonly headerDict = {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
    'Access-Control-Allow-Headers': 'Content-Type',
    'Access-Control-Allow-Origin': '*'
  };

  readonly baseUrl: string = 'https://jira.domain.com'; //not the actual domain, duh

  constructor( private http: HttpClient ) {
  }

  login( username: string, password: string ): Observable<any> {
    const token: string = window.btoa( `${username}:${password}` );
    window.localStorage.setItem( 'currentUser', JSON.stringify( { authtoken: token } ) );
    const _headers: HttpHeaders = new HttpHeaders( this.headerDict );
    _headers.append( 'Authorization', JSON.stringify(token) );
    const requestOptions = {
      headers: _headers
    };
    return this.http.post<any>( `${this.baseUrl}/rest/auth/1/session`, {}, requestOptions );
  }

  logout() {
    localStorage.removeItem( 'currentUser' );
  }
}

Я думаю, что неправильно добавляю заголовки, потому что, когда я ставлю точку останова на requestOptions в фактическом POST, я вижу следующее: enter image description here

Для меня это не похоже на правильные заголовки.

1 Ответ

0 голосов
/ 14 октября 2018

попробуйте добавить новый заголовок следующим образом:

const _headers: HttpHeaders = new HttpHeaders( this.headerDict );
_headers = _headers.set( 'Authorization', JSON.stringify(token) );

надеюсь, это поможет.

...