【发布时间】:2011-07-31 16:42:07
【问题描述】:
您好,我正在寻找一种将使用 ajax 检索的 XML 文档呈现到新浏览器窗口的方法。
我正在使用 JQuery 的 ajax() 函数将 JSON 数据发布到 MVC 控制器。控制器将 XML 作为字符串返回。
我正在使用 window.open() 在 javascript 中创建一个新窗口并通过调用设置文档内容。
newwindow.document.clear();
newwindow.document.
newwindow.document.write(jqXHR.responseText);
newwindow.document.close();
(其中 jqXHR.responseText 是从 ajax() 调用返回的 XML。)
新窗口按预期打开,如果我在页面上查看源代码,我会看到我的 XML。但是(你知道有人来了)浏览器窗口中什么也没有出现。显然,如果我将页面源保存到磁盘并打开,输出将按预期呈现。
谁能提出解决方案? 重申一下我的主要目标是将 XML 文档(通过 ajax 调用获得)呈现到新窗口。
我还应该补充一点,我希望看到由 XSLT 转换的输出。我的 XML 有这个处理指令。 非常感谢
编辑--------------- 我使用的解决方案 ------- ------------------
感谢大家的cmets和建议。
我最终采用的解决方案是创建一个带有 target="_blank" 的表单,然后我将 JSON 作为隐藏字段写入表单,并将其发布到返回 XML(由 JSON 构造)的控制器)。当 XML 从响应中返回时,浏览器按预期标记了它。我想这不是原始问题的答案。但 Gabby 下面有一个解决方案。
【问题讨论】:
-
您想在窗口中查看原始 XML,还是希望通过 XSLT 转换以“人性化”可读形式显示实际 XML 文档内容?
-
我希望看到应用 XSLT 转换
-
不是关于 XSLT 本身,而是关于 XSLT 处理器的跨浏览器调用。重新标记。
-
我有类似的问题需要解决,并且已经发布了我在这里所做的事情。 stackoverflow.com/questions/134905/…>
标签: javascript jquery xml ajax xslt