@martrix

Как добавить headers в запрос в angular2?

привет всем.
Такая проблема, пытаюсь отправить запрос из сервиса на бэкэнд, указываю заголовки
const headerDict = {
            'Content-Type': 'application/json',
            'Accept': 'application/json',
            'Test': 'test',
            'Authorization':'Bearer '+localStorage.getItem("access_token")
        }
        let header = new Headers(headerDict);
        let data = JSON.stringify({ username: username, password: password })
        // this.http.request()
        return this.http.post(
            this.apihost + 'user/login',
            data, 
{
                'headers': header,
            }
        ) ...

вроде все по мануалу, однако заголовки не отправляются
OPTIONS /v2/user/login HTTP/1.1
Host: api.hm.loc
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Access-Control-Request-Method: POST
Origin: ang.hm.loc:4200
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/62.0.3202.75 Chrome/62.0.3202.75 Safari/537.36
Access-Control-Request-Headers: authorization,content-type,test
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7

В чем проблема?
фронт и бэк на одном домене, с ответом бэка отдаю заголовок Access-Control-Allow-Origin:*
  • Вопрос задан
  • 619 просмотров
Пригласить эксперта
Ответы на вопрос 1
@martrix Автор вопроса
В общем сам же и отвечаю :)
js делает 2 запроса, вначале OPTIONS а уже потом POST
поэтому вначале мы отдаем запрос с заголовками, где указано какие заголовки мы примем и какой метод ожидаем, а обрабатываем уже собственно POST запрос
то есть примерительно к Yii делаем так
if (\Yii::$app->request->isOptions){
            header("Access-Control-Allow-Origin: *");
            header('Access-Control-Allow-Method:POST');
            header('Access-Control-Allow-Headers:authorization,content-type,test');
            die();
        }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы