Как отправить токен в cookie, с сервера запрос угловой универсальный? - PullRequest
0 голосов
/ 30 мая 2019

Мне нужно отправить со своей серверной стороны в API в заголовках запроса «Cookie: token » В угловом универсальном, для серверов Http-методы запроса я использую axios.когда я пытаюсь изменить заголовки с помощью Interceptor, у меня появляется ошибка "Отказ от установки небезопасного заголовка" Cookie "" , если я отправляю статический файл cookie, например, третьи аргументы axios post, все работает нормально, но у меня возникают некоторые проблемы с динамическивставьте токен туда.

request.servise.ts

    import { RequestBody } from './models/request-body.model';
    import axios from 'axios';
    import {AxiosInstance} from 'axios';

    export class Request {
        http: AxiosInstance = axios;
        constructor() {}
        async test(): Promise<any> {
        const  params = {
                param1: 1,
                param2: 2,
                param3: 3,
            }
            try {
            return this.basicRequest('https://some-request.url', params);
            } catch (e) {
            console.error('Unknown exception: ', e);
            return null;
            }
        }

        private basicRequest(url, params) {
            const request = new RequestBody('2.0', 'someMethod', Math.floor(Math.random() * (9999999 - 1000000)) + 1000000, params);
            return this.http.post(url, request);
        }
    }

projects.ts (контроллер маршрутизатора сервера)

      import {Router} from 'express';
      import {Request} from '../../shared/request.service';



      const router: Router = Router();

      router.get('/test', async function(req, res, next){

        const request = new Request();
        try {
          const projects = (await request.test()).data.result.records;
          res.json(projects);
        } catch (e) {
          console.error(e);
        }
      });


      export const ProjectsController: Router = router;

1 Ответ

0 голосов
/ 31 мая 2019

По умолчанию angular universal не передает куки при использовании HttpClient. Итак, вам нужно сделать это вручную, но вы получите ошибку, о которой упоминали.

Возможный обходной путь, предложенный в этой проблеме универсального github , заключается в обходе режима безопасности по умолчанию для xhr2 для небезопасных заголовков

server.ts

import * as xhr2 from 'xhr2';
xhr2.prototype._restrictedHeaders = {};
...