Необходимо отобразить содержимое 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.