Обработка <html>данных ответа вместо Json, Angular 6 - PullRequest
0 голосов
/ 01 июля 2019

Угловая 6 аппликация.Вызов веб-службы, которая возвращает данные HTML.Пришлось отображать эти html-данные в div.

Это примерные данные отклика HTML из сервиса.

<html>
 <head>
<title>Chart : 180: Abraham, Male, 1 Year(S)</title>
</head>
<frameset border=0 rows="145,*">
  <frame noresize id="t_pan" name="t_pan" src="id=180" scrolling="no">
  <frameset border=0 cols="175,*">
    <frame noresize id="l_pan" name="l_pan" src="id=180">
    <frame noresize id="r_pan" name="r_pan" src="Pt&id=1937181">
  </frameset>
</frameset>
</html>

Вот так я вызываю фактический API, который возвращает данные HTML (при условиивыше)

getDetailData(url:string): Observable<any> {
    return this.http.get(url, {headers :{'Accept': 'text/html', 'responseType': 'text' as 'json'}})
        .map(data => {
            data;            
    });

В компоненте, вызывающем службу

const url = "http://10.98.12.1:2009/PChart?id=180" ; //hard coded for now.
        this.personService.getDetailData(url).subscribe(res =>{
             console.log(res);

        });

выдает исключение

"Ошибка: SyntaxError: Неожиданный токен <в JSON в позиции 0 в JSON.parse () в XMLHtt…, текст: "..." </p>

Ответ:

enter image description here

Решение моей проблемы:

Я использовал неправильный путь, я решил его с помощью iframe и загрузил в него данные.

1 Ответ

0 голосов
/ 01 июля 2019

Установите responseType в:

'responseType': 'text';

, и вызов API будет:

const url = "http://10.98.12.1:2009/PChart?id=180" ; //hard coded for now.
this.personService.getDetailData(url).subscribe(res => {
    this.name = res;
});

HTML-код:

<div [innerHTML]="name"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...