当前位置: 首页 > 面试题库 >

如何使用HTTP POST通过Ajax下载文件(即主体中的一些信息)?

武功
2023-03-14
问题内容

下载弹出对话框可以通过以下方式显示

window.location = "someUrl"

或者只是有一个发送HTTP GET方法的链接,依此类推。我已经成功地做到了。

但是现在我想用HTTP POST做Ajax。POST正文具有JSON之类的

{"val1":"key1", "val2":"key2"}

然后在Servlet端,它读取JSON并针对DB执行查询以获取数据,然后根据查询数据生成Excel。

我无法正常工作的部分是客户端。

假设我的servlet在resources/report/schedule生成Excel文件。

使用Ajax时,这不会弹出下载对话框:(有人可以帮我如何使用Ajax进行下载对话框吗?

  function post25() {
            var jsonInput = {};
            jsonInput['作業区コード'] = "481";
            jsonInput['機械コード'] = "11";
            jsonInput['作業日'] = "2000/01/01";
            jsonInput = JSON.stringify(jsonInput);

            var ajaxRequest = new XMLHttpRequest();
            ajaxRequest.onreadystatechange = function() {
                if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
                    var res = ajaxRequest.responseText;
                    //location.href = "../resources/report/schedule";
                }
                else if(ajaxRequest.status == 409 || ajaxRequest.status == 500 || ajaxRequest.status == 204) {
                    alert(ajaxRequest.status);
                    document.getElementById("showMessage").innerHTML = ajaxRequest.responseText;
                }
            }
            ajaxRequest.open("POST", "../resources/report/schedule", true);
            ajaxRequest.setRequestHeader("Content-Type", "application/json");
            ajaxRequest.send(jsonInput); 
        }//end post25()

问题答案:

出于安全原因 ,不允许使用ajax下载文件



 类似资料:
  • 问题内容: 下载弹出对话框可以通过以下方式显示 或者只是有一个发送HTTP GET方法的链接,依此类推。我已经成功地做到了。 但是现在我想用HTTP POST做Ajax。POST正文具有JSON之类的 然后在Servlet端,它读取JSON并针对DB执行查询以获取数据,然后根据查询数据生成Excel。 我无法正常工作的部分是客户端。 假设我的servlet在生成Excel文件。 使用Ajax时,这

  • 问题内容: 我有一个生成CSV文件并将其通过http / ajax get返回到页面的服务。我希望用户单击按钮,调用服务,然后将文件下载到用户的浏览器。 我想使用Angular Way,尽管我认识到这可能与Ajax或浏览器的关系要比Anguler本身更多。 该服务在C#中,它返回的内容是: 调用该服务的控制器代码如下所示。它有效,但是我不知道如何成功: 问题答案: 您无法从常规的ajax GET或

  • 问题内容: 我有一个按钮,它将调用ajax函数。 这是我的ajax功能 我根据用户输入创建csv文件。创建之后,我希望它提示下载或强制下载(最好是强制)。我在php文件的末尾使用以下脚本来下载文件。如果我在单独的文件中运行此脚本,则可以正常运行。 但是,如果我在csv.php的末尾运行它,它会将file.csv的内容输出到页面中(进入ajaxDiv)而不是下载。 有没有办法强制在csv.php的末

  • 本文向大家介绍PHP 通过AJAX调用下载文件,包括了PHP 通过AJAX调用下载文件的使用技巧和注意事项,需要的朋友参考一下 使用Ajax下载文件不是一个好主意。而是应使用window.location 或 document.location。 “window.location”具有以下特点- 需要启用JavaScript 它不需要PHP。 它有助于显示站点的内容,并在几秒钟后重定向用户。 重定

  • 问题内容: 下面是我的代码: 这是我正在使用的脚本 如何返回上述代码以下载文件? 问题答案: 请尝试一下,以成功实现ajax 更新的答案: Ajax请求:

  • 问题内容: 我有以下代码,可以轻松连接到FTP服务器并打开一个zip文件。我想将该文件下载到本地系统。怎么做? 问题答案: