我正在将Crystal报表导出到pdf文档,UI中有一个按钮用于在“Downloads”文件夹下载该pdf。为了达到这个目的,我在web api中有一个方法,通过单击按钮执行,并且该方法返回内容为字节数组的HttpResponseMessage(pdf位于blob上,并将该文件下载到字节数组中)。 从UI,使用javascript的window.open方法我直接打开web api方法的URL,当执行的时候在下载文件夹中下载文件。在web客户端下载pdf格式的字节数组作为pdf在客户端
这工作正常。但是现在我已经向web api控制器添加了[Authorize]属性,因此当javascript窗口打开时,会提示用户输入用户名和密码值。
我想发布一个ajax请求到服务器,它返回客户端上的字节数组。执行Ajax请求后,我写了下面的代码:
data = "data:application/octet-stream;base64," + data;
document.location = data;
该文件确会下载,但它会下载为我必须使用“下载”文件“打开方式...”选项查看文件。我如何将它作为pdf文档下载?
我以前写过类似的代码,它工作得很好。但我现在用[Authorize]属性装饰了我的web api控制器。这就是为什么我从服务器发送byte []到客户端。您可以再次阅读该问题。我想在客户端上以pdf格式下载该字节[]。 – user2585299