Angular [Innerhtml] визуализирует статические файлы, отличные от ответа webapi - PullRequest
0 голосов
/ 17 января 2019

Необходимо отобразить содержимое HTML-файла в DIV, работает в статическом файле, происходит сбой в динамическом файле.

Что работает:

У меня есть файл EML, который, как я подозревал, должен былразобрать.Переименование расширения файла в HTML, как это приятно выглядит, несколько прилично, со всеми тегами, удаленными и отформатированными правильно, , если подается из статического файла .

public getOneFileStatic(fn: string): Observable<any> {
    return this.http.get(fn, { responseType: 'text' })
      .pipe(tap(_ => console.log('== getOneFileStatic ')));
  }

и называется просто:

svc.getOneFileStatic('/assets/files/eml-test.html')
            .subscribe(x => {                        
                    this.theinner = x;
                });

и шаблон

<div class="card-block">
      <div [innerHTML]="theinner | safeHtml" style="width: 100%"></div>
</div>

Что нет, и показывает необработанный текст с тегами

Затем попробовал динамический способ возврата из вебапи:

public getOneFile(fn: string): Observable<any> {
    return this.http.get( this.baseUrl + '/api/ServerFiles/GetStream/' + fn , { responseType: 'text' })
      .pipe(tap(_ => console.log('== getOneFile '))
      );
  }

Результаты - это поток текста со всеми тегами и содержимым MIME, выгруженными как есть.

Я просмотрел

Я проверил заголовки содержимого и попробовал: текст, блоб и т. Д.,также приложение / октет.Но все они выглядят хорошо и отображаются в необработанном виде с тегами HTML, которые никогда не учитываются.

Заголовки: при обработке статического файла

Referrer Policy: no-referrer-when-downgrade
HTTP/1.1 304 Not Modified
X-Powered-By: Express
Access-Control-Allow-Origin: *
Accept-Ranges: bytes
ETag: W/"cb81-Rb8BCAxZvy4eWO/lkggYEFPkXzo"
Date: Wed, 16 Jan 2019 21:33:45 GMT
Connection: keep-alive

при обнаружении динамического файла:

HTTP/1.1 200 OK
Date: Thu, 17 Jan 2019 00:52:35 GMT
Content-Type: text/html
Server: Kestrel
Content-Length: 97197
Vary: Origin
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://localhost:4200

Примечание: в случае статического заголовка Content-Type нет.Но мне нужно указать один код в моем сервере при потоковой передаче содержимого файла, а именно Kestrel и .Net Code.

...