1

我需要实现以下场景:我有一个 html 页面,其中是一个按钮和一些文本框。当我单击按钮时,我想从文本框数据创建一个 xml 并将这个 xml 发送到服务器,然后服务器将这个 xml 作为附件返回,我将有一个“另存为”对话框,我可以在本地保存这个 xml。我有以下将 xml 发送到服务器的 jquery 函数:

        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 强制另存为对话框?

谢谢。

4

1 回答 1

0

从答案和评论中,我决定使用经典表单提交。我会将所有表单提交到服务器,xml 将在服务器端构建。一些建议的解决方案看起来很不错,但是在我的目标生产环境中存在一些限制。例如,无法安装任何外部组件(例如闪存)。该解决方案也必须在较旧的 IE 8 浏览器中工作(我不能使用所有新的 HTML 5 功能 => 我不能使用 jsfiddle)。看来,经典的 javascript 不支持另存为对话框,尤其是出于安全原因。

于 2013-05-27T20:52:11.277 回答