gpt4 book ai didi

javascript - 尝试打开从 ajax 检索到的数据以自动下载

转载 作者:行者123 更新时间:2023-11-30 06:42:38 25 4
gpt4 key购买 nike

现在,我有一个 web 应用程序,它使用 jquery ajax 向我的后端发出调用(参数通过表单在每次调用之间更改)并检索 xml 文件。我想将 xml 数据放入一个具有不同扩展名的文件中,供私有(private)应用程序使用。

基本上,我只希望用户能够单击一个按钮,它会自动提示他们“打开或保存”一个包含返回的 ajax xml 数据的文件。

我尝试过使用 php 发送原始的 http header ,但我不知道如何让它工作。我正在用 javascript 和 jquery 编写所有这些内容。

下面代码所做的唯一事情是 (1) 进行 Ajax 调用,(2) 将 XML 写入 HTML 页面,(3) 打开 HTML 页面。

var format = function() {   
$("button#format").click(function() {
$("#form").submit();
$.ajax({
url: "find",
beforeSend: function (xml) {
xml.overrideMimeType("application/octet-stream; charset=x-user-defined");
},
data: $("form#form").serialize(),
dataType: "html",
success: function(xml) {
xmlWindow = window.open("download.ivml");
xmlWindow.document.write(xml);
xmlWindow.focus();
},
error: function(request) {
$("#webdiv").html(request.responseText);
}
});
});
};

最佳答案

没有必要将这样的东西强加到 AJAX 范例中,除非您需要在将检索到的数据提供给用户之前对其进行处理,然后再说一次,这应该能够在 php 中完成。所以我会做这样的事情:

<form id="format" action="download.ivml" target="_blank">
...
</form>

然后在 jquery 中像这样修改 action

​$('#format')​.submit(function(){
// tweaking the post data, otherwise this whole block is not needed.
return true;
})​;

最后在我的服务器上使用 .htaccess 文件来处理那个奇怪的 URL download.ivml

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)download.ivml$ /path/to/where/I/process/the/request

虽然不太确定最后一个 .htaccess 文件的语法。

关于javascript - 尝试打开从 ajax 检索到的数据以自动下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9692308/

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