繁体   English   中英

通过POST下载带有Javascript的文件

[英]Download a file with Javascript via POST

我目前使用此解决方案通过javascript下载excel文件。 当用户点击按钮时,我的javascript会创建一个我用iframe加载的网址。 此解决方案适用于短网址。 但是,我遇到过一个案例,我的网址太长, get请求。 我想保留相同的行为,以便不为excel导出打开新的窗口。 但是,如果有必要,我可以打开一个临时窗口。 我想到了一个我想避免的解决方案:

  1. 发出创建excel文件的POST请求,将其保存到临时文件夹,然后返回唯一的文件名。
  2. 在为iframe构建的URL中请求文件名。

我不喜欢这个解决方案,因为它需要一些非常重要的工作来设置一个临时文件夹,该文件夹将在我们所有的Web服务器上共享。 另外,如果我不需要,我只是不想创建一个临时文件。

当前代码:

$("body").append('<iframe width="0" height="0" frameborder="0" src="' + dynamicallyCreatedUrl + '"></iframe>');

有没有办法让我通过javascript下载excel文件的POST请求?

此解决方案必须适用于IE8 +,Firefox,Chrome。 仅供参考:我使用的是IIS7,ASP.Net MVC,C#。 我可以访问YUIJQuery

我知道这对于在POST中下载文件没有帮助,但它为您的问题提供了一种替代解决方案而不会有太大变化。

我建议您使用URL缩短API。 基本上,您可以只传递一个长URL并让它们为您提供缩短版本的URL。

以下是我想到的前两个:

tinyurl似乎不允许跨域javascript,因此您需要服务器向他们发出GET请求并将URL返回给您的客户端。

bitly允许跨域javascript,但看起来你可能需要添加一些身份验证

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM