从javascript向Ashx处理程序发送xml数据,并在新窗口中显示响应

Send xml data to Ashx handler from javascript and display the response in new window

本文关键字:新窗口 窗口 响应 显示 处理 Ashx javascript 程序 数据 xml      更新时间:2023-09-26

我有一个asp.net ASHX处理程序,它接受xml数据作为输入并生成pdf文档,并将其返回给响应,如下所示:

 public override void NowProcessTheRequest(XmlWriter xw)
    {
       var bytes = get pdf bytes from service based on input xml xw
       var fileName="test";
       context.Response.ContentType = "application/pdf";
       context.Response.Headers.Add("Content-Disposition",
       string.Format("inline; filename=report_{0}_{1}.pdf", fileName, DateTime.Now.ToString("MM_dd_yyyy")));
       context.Response.Write(bytes);
       context.Response.Flush();
  }

现在我想从javascript在一个新窗口中打开生成的pdf。

我不能使用"window.open",因为我不知道如何在正文中传递xml。那么,我有什么选择可以从javascript调用这个ashx处理程序并发布xml数据并在新窗口中打开响应pdf呢。?

echo xml输入?

var xml = "<?xml version='"1.0'" encoding='"UTF-8'"?><abc>123</abc>";
$.post("/echo/xml/", {xml:xml}, "xml")
.then(function(xml) {
    var res = $(xml).find(":root")
    , popup = window.open("", "popup", "width=600,height=400");
    popup.document.body.innerHTML = res.get(0).outerHTML;
    popup.focus();
    popup.print();   
});

jsfiddlehttp://jsfiddle.net/guest271314/trsvLmhm/

请参阅js window.open,然后打印()