拦截使用JavaScript的文件下载

我有一个API,根据请求的参数产生一个自定义的Excel文件:

这里是对excel文件的调用:

window.location = Service.API_ENDPOINT + '/report/GetAReport' + generateQueryParams(); 

问题是,有时没有数据填充电子表格(对应于查询参数),用户下载一个空的电子表格。 在这些情况下,我想popup一条消息,说“没有结果的参数”。 问题是如何做到这一点。

我在想,如果没有查询结果(甚至可能是服务器错误),我可以调整api来返回文件以外的文件,但是如何在客户端上执行? 我的意思是,我怎么能修改这个调用,以便在有一个的情况下下载一个文件,但是当服务器发送了其他的东西时显示一个消息,“其他”应该是什么?

提前致谢。

您可以针对相同的端点执行HEAD请求,并在电子表格为空时返回不同的状态代码。

然后,在执行window.location更改之前,使用HEAD方法执行AJAX请求。 如果状态是200,继续下载。 如果是302(例如),则显示警报。