EF CORE API не добавляет заголовок ответа access-control-allow-origin ТОЛЬКО в html2canvas - PullRequest
0 голосов
/ 04 ноября 2019

Моя проблема в том, что, когда html2canvas пытается отобразить одно изображение, он не сообщает мне, что есть проблема с политикой cors. Я проверил запрос и увидел, что access-control-allow-origin отсутствует в заголовках ответа.

Я добавил этот код в мой Startap.cs и в метод Configure () на моем API:

app.Use((context, next) =>
            {
                context.Response.Headers["Access-Control-Allow-Origin"] = "*";
                return next.Invoke();
            });

Код abouve добавляет Access-Control-Allow-Origin ко ВСЕМ заголовкам ответа, кроме случаев, когда HTML2canvas пытается получить изображение.

Remenber, только когда html2cavas пытается получить изображение из API, у меня есть эта проблема с Cors.

Все остальное работает нормально.

Кто-нибудь может помочь?

Вот код внешнего интерфейса:

html2canvas(data, {logging: true, allowTaint: false, useCORS: true }).then(canvas => {
        // var imgWidth = 220;
        // var pageHeight = 320;
        var imgWidth = 280; // valor anterior: 280
        var pageHeight = 1000; //valor anterior: 1000
        var imgHeight = canvas.height * imgWidth / canvas.width;
        //var imgHeight = 2000;
        var heightLeft = imgHeight;
        var widthLeft = imgWidth;

        const contentDataURL = canvas.toDataURL('image/png');
        let pdf = new jspdf('landscape', 'mm', 'a4', true); // A4 size page of PDF
        var position = 0;
        pdf.addImage(contentDataURL, 'PNG', 0, position, imgWidth, imgHeight, '', 'FAST');

        pdf.save('PadronTecnico.pdf'); // Generated PDF
        this.blockUI.stop();

        this.showScrolls = true;
     })

1 Ответ

0 голосов
/ 04 ноября 2019

Я добавил заголовки ответа для метода Configure (), и он работал отлично!

app.UseStaticFiles(new StaticFileOptions()
            {
                FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"Resources")),
                RequestPath = new PathString("/Resources"),
                OnPrepareResponse = ctx =>
                {
                    ctx.Context.Response.Headers.Append("Access-Control-Allow-Origin", "*");
                }
            });
...