Ax ios IE 11 проблема, не может загрузить блоб типа ответа - PullRequest
0 голосов
/ 21 апреля 2020
axios.get("http://localhost:63542/api/v1/WorkInst",
            {
                responseType: 'arraybuffer',
                headers: {
                    'Content-Type': 'application/json',
                    'Accept': 'application/pdf'
                }
            })
            .then((response) => {
                console.log(response);
                var blob = new Blob([response.data], {type: 'application/pdf'});
                var downloadUrl = URL.createObjectURL(blob);
                var a = document.createElement("a");
                a.href= downloadUrl;
                a.download = ("test.pdf");
                a.click();


            })
            .catch((error) => console.log(error));

Но вместо того, чтобы скачивать, "Вы хотите, чтобы этот сайт открывал приложение на вашем компьютере?" Но он работает с использованием Google chrome и Mozilla firefox. Очень нужна помощь по этому

1 Ответ

0 голосов
/ 21 апреля 2020

Насколько я знаю, Атрибут загрузки не поддерживает IE браузер. Таким образом, в браузере IE и Edge после получения данных файла можно использовать метод msSaveOrOpenBlob для загрузки файла в браузер IE и Edge, а в браузере Chrome или Firefox можно создать гиперссылка для загрузки файла с использованием URL. Более подробную информацию, пожалуйста, проверьте этот образец:

        if (window.navigator && window.navigator.msSaveOrOpenBlob) {
            //IE11 and the legacy version Edge support
            console.log("IE & Edge");
            let blob = new Blob([data], { type: "text/html" });
            window.navigator.msSaveOrOpenBlob(blob, fileName);
        } else {// other browsers
            console.log("Other browsers");
            var bl = new Blob([data], { type: "text/html" });
            var a = document.createElement("a");
            a.href = URL.createObjectURL(bl);
            a.download = fileName;
            a.hidden = true;
            document.body.appendChild(a);
            a.click();
        }
...