HTML5下载属性错误处理

时间:2017-12-12 02:34:03

标签: html5 error-handling download

在html5中,我尝试使用download属性,这是一个示例代码

<a href="/images/myw3schoolsimage.jpg" download>

如果链接无效或被禁止,它仍然会下载禁止的html错误页面或其他一些错误页面。相反,有没有办法检查标头是200还是下载资源(如果只有可访问/存在?)

1 个答案:

答案 0 :(得分:0)

我刚刚使用此解决方案解决了该问题,请下载PDF:

const onDownloadClick = async (evt) => {
    const anchor = evt.target.parentNode;

    try {
        const response = await axios({
            method: 'get',
            url: '/pdf',
            responseType: 'blob',
            headers: {
                'Accept': 'application/pdf'
            }
        });

        const blob = new Blob([response.data], {
            type: 'application/pdf',
        });
        anchor.href = window.URL.createObjectURL(blob);
        anchor.download = 'filename.pdf';
        anchor.click();
    } catch (err) {
        console.log(err);
    }
}

最初,链接没有下载属性。我只是动态地设置它并模拟使用JavaScript的链接单击。对于图像,您只需要一个不同的标题和Blob类型。我猜image/jpeg会做到的。