1

我已经尝试了几个小时来解决这个问题,但无济于事。在 javascript 中,我创建了一个 XML 字符串:

var txt="<bookstore><book type='cooking'>";
txt+="<title>Everyday Italian</title>";
txt+="<author>Giada De Laurentiis</author>";
txt+="<year>2005</year>";
txt+="</book>";

然后我用它来创建 XML dom:

if (window.DOMParser) {
    var parser=new DOMParser();
    var xmlDoc=parser.parseFromString(txt,"text/xml");
}
else{ // Internet Explorer
    var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.loadXML(txt);
}

我需要将 xmlDoc 发送到服务器页面(我认为是 asp 页面),服务器会提示我将 xml 文件保存到本地驱动器。我对此没有太多经验,并且遇到了障碍。我知道我需要创建一个 XMLHttpRequest 并将我的 xmlDoc 发布到一个 asp 页面:

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "http://MYSERVERURL/xml.ASP", false);  
xmlhttp.send(xmlDoc); 

我的问题是我不知道应该进入我的 xml.ASP 页面以接收 xmlDoc 并提示我保存到 xml 文件。

到目前为止我有这个,但真的不知道从这里去哪里:

<%
response.ContentType="text/xml"
set xmldoc = Server.CreateObject("Microsoft.XMLDOM")
xmldoc.async=false
xmldoc.load(request)
%> 

任何帮助是极大的赞赏。

谢谢。

4

1 回答 1

0

不确定我是否理解您想要实现的目标,但如果您只想强制显示打开/保存对话框并允许保存发布到脚本的任何内容,那么您可以使用以下简单代码执行此操作:

<%
Response.ContentType = "application/x-unknown"
Response.Addheader "Content-Disposition", "attachment; filename=""mydoc.txt"""
Response.Write(Request.Form)
%>

更新:URL 解码功能。

function URLDecode(sText)
    sDecoded = Replace(sText, "+", " ")
    Set oRegExpr = Server.CreateObject("VBScript.RegExp")
    oRegExpr.Pattern = "%[0-9,A-F]{2}"
    oRegExpr.Global = True
    Set oMatchCollection = oRegExpr.Execute(sText)
    For Each oMatch In oMatchCollection
        sDecoded = Replace(sDecoded,oMatch.value,Chr(CInt("&H" & Right(oMatch.Value,2))))
    Next
    URLDecode = sDecoded
End function
于 2012-10-17T04:11:02.657 回答