HTML5 <a>在JavaScript下载属性不处理服务器错误

我试图以编程方式单击具有下载属性和href下载文件从服务器的<a>元素。 但是,如果下载出错,服务器将返回一个错误状态代码的HTML页面。 由于HTML5下载属性,它会尝试强制下载此html页面或下载服务器错误文件。 有没有办法,我可以打开一个新的标签,而不是下载的HTML错误文件? 我已经将target属性设置为_blank。

您可以使用XMLHttpRequestfetch请求文件,如果没有错误发生,设置<a>元素hrefdownload属性,否则redirect用户到文档显示错误响应。

你可以创build新的元素,例如button,并使用jQuery Ajax请求clickevent来检查服务器是否可用。

 $.ajax({ url: "/url/to/file", type: "GET", success: //handle succes -> download file, error: //handle error });