Установка типа ответа в Http-запросе в Angular 5 - PullRequest
0 голосов
/ 30 апреля 2018

В настоящее время я работаю над переносом нашего приложения с Angular 4 на Angular 5. У меня есть файл, который обрабатывает любой пост-запрос, и метод post выглядит следующим образом:

public post = (data: any, url = '', header: any = null, mapToJson = false): any => {
        if (mapToJson) {
            return this.commonHttpService.post(url, data, header)
                .map(this.extractData)
                .map((response: Response) => response.json());
        } else {
            return this.commonHttpService.post(url, data, header)
                .map(this.extractData)
                .map((response: Response) => response);
        }
    }

Это вызов общего метода службы http, который записан в другом файле, где я создаю запрос Http и добавляю заголовки, параметры и параметры в запрос. В опциях нам нужно указать тип ответа, поэтому я добавил «json» в качестве типа ответа. Но некоторые веб-сервисы могут возвращать текст, блоб или любой другой контент. Вот как я объявил опции в запросе:

 httpOptions = {
                body: body,
                headers: req.headers,
                observe: 'response',
                params: params,
                reportProgress: false,
                responseType: 'json',
                withCredentials: true,

            };
    request = this.http.request('POST', url, httpOptions);

Поэтому, когда я получаю тип ответа как «Текст» или «Blob», сопоставление не выполняется. Он ищет структуру json, но, поскольку я получаю ответ как «Успех», я получаю сообщение об ошибке синтаксического анализа. Есть ли способ указать несколько типов ответов в настройках. Как и для «responseType» внутри httpOptions, я хотел бы передать несколько значений, таких как «json» | «текст» | «Клякса». Или мы можем указать тип ответа динамически? Я искал ответы онлайн и не смог найти лучшего подхода для этого.

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