gpt4 book ai didi

java - 带有文件返回的 Ajax 发布

转载 作者:行者123 更新时间:2023-11-30 10:40:44 25 4
gpt4 key购买 nike

有没有办法返回动态服务器端生成的文件,该文件是从 ajax post 结构中获取的?

写一个小的 web mvc 项目,它生成一个数据列表(数据是从一个复杂的聚合查询生成的,不能从 id 或其他任何地方调用),并得出我想要导出一些选定的部分部分到一个文件并下载它。

它是如何工作的:1.在页面上我选择一些带有关键数据的字段(使用JQuery DataTable)2.将其发送到 Controller (准确地说是Spring)3. 生成字节流并将其作为带有“Content-disposition”、“attachment” header 的 HTTPResponse 返回。

事情是我选择行并使用 JQuery->Ajax 形成所需的数据,因此 Controller->Post 的结果保留在 javascript 部分内,而不是给我“另存为...”。

我已经在考虑一个临时目录或其他东西,但最后一个保存选项。

最佳答案

很遗憾,您无法通过ajax 获取文件,但您可以通过动态生成表单并提交来实现。根据我们关于生成表单并提交的评论讨论,您可以执行类似的操作。

function autoSubmitForm(method, url, post_data) {
var element = document.getElementById("virtual_form");
if(element != null )
{
element.parentNode.removeChild(element);
}
var form = document.createElement("form");
form.setAttribute("id", "virtual_form");
form.setAttribute("style", "display:none;");
form.method = method;
form.action = url;
for(i in post_data)
{
var element=document.createElement("input");
element.value=post_data[i];
element.name=i;
form.appendChild(element);
}
document.body.appendChild(form);
form.submit();

}

autoSubmitForm('POST','your_url.php',{id:"xyz",other_input:"input value"});

此处 {id:"xyz",other_input:"input value"} 是发布数据的对象,您可以动态定义它的字段名称和字段值对。在函数中传递它。

关于java - 带有文件返回的 Ajax 发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38789610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com