下载弹出对话框可以通过
显示window.location = "someUrl"
或者只是简单地拥有一个发送HTTP GET方法的链接等等。我成功完成了这件事。
但现在我想用HTTP POST做Ajax。 POST正文有JSON,如
{"val1":"key1", "val2":"key2"}
然后在servlet端,它读取JSON并对DB执行查询以获取数据,然后根据查询数据生成Excel。
我无法使其发挥作用的部分是客户端。
确认resources/report/schedule
处的servlet会生成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()
答案 0 :(得分:10)
出于安全原因,不允许使用ajax 下载文件。