gpt4 book ai didi

javascript - 如何使用 JavaScript 将 XML 发布到 iframe

转载 作者:行者123 更新时间:2023-11-30 18:57:31 25 4
gpt4 key购买 nike

基本上我想将 XML(带有 Content-Type text/xml)发布到 URL 并直接在浏览器中显示输出。这必须在 iframe 中完成。

是否可以将 XML 发布到 iframe?也就是说,Post-Request的Content-Type可以改成text/xml吗?如果需要,也可以使用 PHP4。

必须保留 iframe-action 的 URL,因为结果包含带有相关链接的 HTML 页面...

最佳答案

以前可以在 Netscape 的 iframe 上document.open(mimetype),但现代浏览器不支持这个(而且 Netscape 从不支持 XML)。

在许多浏览器中,您可以将 iframe 的 src 设置为 data URI如:data:text/xml,%3Celement%3Ehello%3C/element%3E,只要文档不太长即可。虽然这在 IE 中不起作用。所以你至少需要一个返回服务器的备份计划:

<?php
header('Content-Type: text/xml');
echo($_REQUEST('xml'));
?>

然后,如果 XML 足够短以适合 URI,您可以通过以下方式设置其 src:

iframe.src= 'http://www.example.com/echoxml.php?xml='+encodeURIComponent(xml);

如果 XML 可能很长,您需要使用 POST 请求,这意味着提交表单:

var idoc= iframe.contentDocument || iframe.contentWindow.document; // IE compat
idoc.open();
idoc.write('<form method="post" action="http://www.example.com/echoxml.php">');
idoc.write(' <textarea name="xml"></textarea>');
idoc.write('</form>');
idoc.close();
idoc.getElementsByTagName('textarea')[0].value= xml;
idoc.getElementsByTagName('form')[0].submit();

这一切值得吗?除非您使用 XSL,否则您在大多数浏览器中获得的无样式 XML View 可能会很差。在根本不显示 XML 的旧版/简单浏览器中,系统只会提示您下载 XML 文件。

并且允许任何人将任何 XML 内容注入(inject)您的安全上下文是危险的。例如。如果他们制作了包含 XHTML 脚本内容的返回文档,您将很容易受到跨站点脚本攻击。

关于javascript - 如何使用 JavaScript 将 XML 发布到 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1453950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com