我目前使用this solution通过javascript下载excel文件。当用户点击按钮时,我的javascript会创建一个我用iframe加载的网址。此解决方案适用于短网址。但是,我遇到过一个案例,我的网址对于get
请求来说太长了。我想保留相同的行为,以便不为excel导出打开新的窗口。但是,如果有必要,我可以打开一个临时窗口。我想到了一个我想避免的解决方案:
POST
请求,将其保存到临时文件夹,然后返回唯一的文件名。我不喜欢这个解决方案,因为它需要一些非常重要的工作来设置一个临时文件夹,该文件夹将在我们所有的Web服务器上共享。另外,如果我不需要,我只是不想创建一个临时文件。
当前代码:
$("body").append('<iframe width="0" height="0" frameborder="0" src="' + dynamicallyCreatedUrl + '"></iframe>');
我有没有办法通过javascript发出POST
请求来下载excel文件?
此解决方案必须适用于IE8 +,Firefox,Chrome。仅供参考:我使用的是IIS7,ASP.Net MVC,C#。我有权访问YUI
和JQuery
。
答案 0 :(得分:1)
我知道这对于在POST中下载文件没有帮助,但它为您的问题提供了另一种解决方案,而且没有太大变化。
我建议您使用网址缩短API。基本上,您只需传递一个长URL,并让它们为您提供缩短版本的URL。
以下是我想到的前两个:
tinyurl似乎不允许跨域javascript,因此您需要服务器向他们发出GET请求并将URL返回给您的客户端。
有点允许跨域javascript,但看起来你可能需要添加一些身份验证