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

我正在尝试使用从 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 解析为页面,然后运行此代码块。


提前致谢。


蝴蝶不菲
浏览 202回答 1
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 filefunction download(filename, dataurl) {&nbsp; var a = document.createElement("a");&nbsp; a.href = dataurl;&nbsp; a.setAttribute("download", filename);&nbsp; a.click();}var regex = /<iframe.*?src='(.*?)'/;var src = regex.exec(ajaxResponse)[1]; // src from that iframedownload("SomeFileName.xmlsm", src);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript