我需要实现以下场景:我有一个html页面,其中有一个按钮和一些文本框。当我单击按钮我要从文本框数据创建一个xml并将此xml发送到服务器时,服务器将此xml作为附件返回,我将有一个另存为对话框,我可以在本地保存此xml。我有以下jquery函数将xml发送到服务器:
function GetXml() {
var xmlData = '{"xml": "<test>test</test>"}';
var contentType = "application/json";
var eDoc = "";
$.ajax({
type: 'POST',
url: 'http://localhost/xmlservice.svc/rest/GetXmlToSave',
data: xmlData,
contentType: contentType,
success: function (result) {
alert(result);
},
error: function (result) {
alert(result);
},
async: false,
});
return result;
}
但我不知道从服务器返回的xml强制从javascript强制另存为对话框。
我可以通过经典的提交按钮实现它:
<form action='http://localhost/xmlservice.svc/rest/GetXmlToSave' method="POST" runat="server" >
<input type="submit"/>
</form>
但在这种情况下,我无法在客户端创建xml。
是否可以从javascript强制另存为对话框?
感谢。
答案 0 :(得分:0)
从答案和评论中我决定使用经典表单提交。我将所有表单提交到服务器,xml将在服务器端构建。 一些建议的解决方案看起来非常好,但我的目标生产环境有一些限制。例如。无法安装任何外部组件(例如闪光灯)。解决方案也必须在旧的IE 8浏览器中工作(我不能使用所有新的HTML 5功能=&gt;我不能使用jsfiddle)。而且看起来,经典的javascript并不支持另存为对话,特别是出于安全原因。