【问题标题】:How to popup a download with jquery from mvc4 webapi如何从 mvc4 webapi 使用 jquery 弹出下载
【发布时间】:2013-03-11 16:59:30
【问题描述】:

我想从 api 下载客户端文件 api控制器:

 public HttpResponseMessage PostOfficeSupplies()
 {
    HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
    result.Content = new StreamContent(File.OpenRead("D:\\Others\\Images\\file.png"));
    result.Content.Headers.ContentType = new MediaTypeHeaderValue     ("application/octet-stream");

    result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
    result.Content.Headers.ContentDisposition.FileName = "file.png";
    return result;    
}

使用 jquery 为我弹出下载的客户端代码(视图)怎么样?

我的客户端:

                 $.ajax(
                    {
                        url: 'api/MyAPI'
                    , type: "post"
                    , contentType: "application/octet-stream"
                    , data: ''
                    , success:
                    function (retData) {
                        $("body").append("<iframe src='" + retData + "' style='display: block;' ></iframe>");
                                        $("#sp123").text(retData);}

                    });       

我只想弹出一个下载

【问题讨论】:

  • 从你的措辞中我不清楚 jQuery 与这些有什么关系?最后,您只是链接到控制器上的操作;你是怎么做的并不是特别重要。
  • 使用 jquery 从 HttpResponseMessage(server) 开始下载我更新了问题

标签: jquery asp.net-mvc rest asp.net-web-api


【解决方案1】:

我不确定您是否能够使用 ajax 调用显示下载弹出窗口,但您可以通过提交表单来显示下载确认窗口

<form id="downloadForm" method="post" action="~/api/MyAPI">
 <!--use this if you want to pass any values !-->
 <!--  <input type="hidden" name="Param1" id="Param1HidenValue" /> !-->
</form>

从 JavaScript 中这样调用它

$('#downloadForm').submit();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-16
    • 2017-09-27
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    相关资源
    最近更新 更多