为了账号安全,请及时绑定邮箱和手机立即绑定

使用从 ajax 调用返回的 html 下载文件

使用从 ajax 调用返回的 html 下载文件

蝴蝶不菲 2023-03-18 11:09:45
我正在尝试使用从 ajax 调用返回的 html 在同一页面上下载文件。ajax 调用如下所示:                            $.ajax({                                url: './xyz.cshtml',                                type: "POST",                                                               data: {                                    //some validation and data to send to server.                                },                                success: function (data, status, xhr) {                                    //alert('status: ' + status + ', data: ' + data);                                    var result = $(data);                                                                        console.log(result);                                    result.appendTo("body");                                }                             });HTML 看起来像这样:<iframe width='1' height='1' frameborder='0' src='http://server//some_folder/some.xlsm'></iframe> <script>document.body.style.cursor = 'default';</script>基本上,我想解析这个 iframe,然后在同一页面上运行它。当 iframe 中的代码运行时,文件将下载。因此,我需要帮助将此 html 解析为页面,然后运行此代码块。提前致谢。
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

好吧,首先你想从 iframe 中获取 src,然后创建锚点 dom 元素并单击它。我想这应该可以解决问题


var ajaxResponse = "<iframe width='1' height='1' frameborder='0' src='http://server//some_folder/some.xlsm'></iframe> <script>document.body.style.cursor = 'default';</script>";


// this function will simply download the file

function download(filename, dataurl) {

  var a = document.createElement("a");

  a.href = dataurl;

  a.setAttribute("download", filename);

  a.click();

}


var regex = /<iframe.*?src='(.*?)'/;

var src = regex.exec(ajaxResponse)[1]; // src from that iframe


download("SomeFileName.xmlsm", src);


查看完整回答
反对 回复 2023-03-18
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信