在我们正在处理的网站上,我们有一个下载链接,必须提供给用户。但是,在获取url时,服务器可以在JSON中提供错误消息(将设置适当的头文件和适当的http状态代码)或提供文件。下载大文件或显示错误
目前,我们正在使用iframe下载此文件,但这会阻止我们查看错误消息。虽然原则上可以这样做,但它不能跨域进行,并且读取错误数据似乎在浏览器之间不同(因为浏览器会将json解释为html并在其周围创建html标记)
I已经考虑使用xmlhttprequest2来下载文件并将其提供给用户,但是下载的文件可能很大,因此必须将其传输给用户。
因此,我正在寻找一种方法来下载文件或根据http状态代码读取错误消息。
API设置
我能到API的转变让我的愿望,但是API的设计是一个公共API,并且被设计为REST API。这意味着,API应该尽可能简单,并且使特定客户端代码工作的解决方法不应该对其他客户端造成任何困惑(因此API和客户端代码是分离的)。
正在下载的文件在服务器上被加密,只能通过URL中给出的信息进行解密。因此,分块传输很困难,因为提取块需要服务器解密整个文件。
你有控制服务器响应吗?你可以改变回应是一个错误代码和错误消息或成功的代码和文件的网址?如果是这样,你可以做一个Ajax调用,并成功重定向到URL。如果这不起作用,请解释一下你的设置可以防止这种情况。 – TinMonkey
期望什么'MIME'类型的文件? – guest271314
@TinMonkey,是的,我喜欢。但总的来说,任何错误都是一个例外,我宁愿提出一个请求,但我只是开始使用下面描述的HEAD方法来实现。它也涉及到一个REST API,所以这样的重定向并不适合设计,但是HEAD当然会采用一种方法:)。 – user23127