двоичная ошибка браузера pdf: ресурс интерпретируется как документ, но передается с приложением MIME-типа / pdf - PullRequest
0 голосов
/ 19 января 2020

Несмотря на установку правильного типа 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.

...