weixin_33716557 2016-10-21 15:07 采纳率: 0%
浏览 5

没有执行过ajax

Im having this piece of code. Where I use this Action to get trigger an export that downloads an excel file. Which works perfectly when I type the link and argument in my browser, the file gets downloaded.

But I want to call this from an ajaxified context and this is where it all gets wrong.

<script type="text/javascript">
    function exportPerson(e) {
    e.preventDefault();
    var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
    var action = '@Url.Action("ExportContactAlarmList", "Contact")';
    $.ajax({
        url: action + '/' + dataItem.Id,
        type: "POST",
        done: function(response) {
            var dataURI = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" +
                kendo.util.encodeBase64(response);
            kendo.saveAs({
                dataURI: dataURI,
                fileName: "PersonExport.xlsx",
                proxyURL: "@Url.Action("Save", "Home")"
            });
        }
    });
} 
</script>

I'm kind of stuck because the done method never gets executed. And I don't know why.

These are my responses from my headers I get back. Header responses

Everything looks good, no errors in the console.

  • 写回答

2条回答 默认 最新

  • weixin_33708432 2016-10-21 15:14
    关注

    try this

    $.ajax({
            url: action + '/' + dataItem.Id,
            type: "POST",
            success: function(response) {
                var dataURI = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" +
                    kendo.util.encodeBase64(response);
                kendo.saveAs({
                    dataURI: dataURI,
                    fileName: "PersonExport.xlsx",
                    proxyURL: "@Url.Action("Save", "Home")"
                });
            }
      });
    

    or

    $.ajax({
           url: action + '/' + dataItem.Id,
            type: "POST"    
    }).done(function(response) {
            var dataURI = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" +
            kendo.util.encodeBase64(response);
            kendo.saveAs({
                    dataURI: dataURI,
                    fileName: "PersonExport.xlsx",
                    proxyURL: "@Url.Action("Save", "Home")"
            });
    });
    
    评论

报告相同问题?

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程