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

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

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()

回答:

出于安全原因 。

以上是 如何使用HTTP POST通过Ajax下载文件(即主体中的一些信息)? 的全部内容, 来源链接: utcz.com/qa/421822.html

回到顶部