Несмотря на установку правильного типа MIME, я получаю предупреждение в Chrome v79, в котором говорится:
Ресурс интерпретируется как Документ, но передается с приложением MIME-типа / pdf
Попытка обслужить pdf, сгенерированный, используя pdfmake с двоичным выводом. Я правильно установил заголовок MIME, но все равно Chrome выдает эту ошибку.
createPdf = async () => {
const PdfPrinter = require('pdfmake');
const Promise = require("bluebird");
var pdfDoc = printer.createPdfKitDocument(docDefinition);
return new Promise((resolve, reject) =>{ try {
var chunks = [];
pdfDoc.on('data', chunk => chunks.push(chunk));
pdfDoc.on('end', () => resolve(Buffer.concat(chunks)));
pdfDoc.end();
} catch(err) {
reject(err);
}});
};
router.get('/get-pdf/:filename', async (req, res)=>{
var binaryResult = await createPdf();
res.contentType('application/pdf').send(binaryResult);
});
И браузер, в котором pdf отображается встроенным:
<object data="/get-pdf/filename.pdf" type="application/pdf"
width="100%" height="100%"></object>
Примечание : Установка Content-Disposition
на сервере не влияет на ошибку и не приводит к ошибке go.