【问题标题】:Flash AS2: How to POST CDATA to a server?Flash AS2:如何将 CDATA 发布到服务器?
【发布时间】:2009-01-13 16:44:44
【问题描述】:

我有一个 XML 对象,我想通过 HTTP POST 发送给我的播放器。使用 XML.sendAndLoad 时这一切都很好。

问题是当我生成的 XML 对象包含 CDATA 时,CDATA 在 POST 发生之前被剥离。

如果我有:

var xml:XML = new XML("<root><tag><![CDATA[hello]]></tag></root>")  

当我执行 sendAndLoad 时,这就是发布的内容:

<root><tag>hello</tag></root>

当我尝试使用 XMLDOM 方法(如 createElement、createTextNode 和 appendChild)创建 XML 时,也会发生同样的情况。

AS2 文档说不支持 CDATA。有解决方法吗?我认为可以通过扩展和覆盖 XML 类来修复它,但我还没有找到一种方法来做到这一点。

谢谢!

【问题讨论】:

    标签: xml flash actionscript-2 cdata


    【解决方案1】:

    这是预期的行为。 XML 解析器在构建其树时替换 CDATA。发送的是树的序列化,没有 CDATA。

    如果您想发送原始 XML 源,您必须将其作为纯字符串数据发送。

    顺便说一句,我看不出这怎么可能是个问题,因为两者在语义上是相同的,即“”和“hello”给出相同的字符串。 CDATA 只是一种引用语法,而不是重要的标记。但是,如果 CDATA 包含特殊字符,则可能会出现问题。您必须正确引用它们。

    【讨论】:

    • 问题是服务器上的脚本(我没有构建它)正在寻找 CDATA。如何发送 RAW XML 源?我不能用 LoadVars 来做,因为它附加了一个 var 名称,这是服务器端脚本不允许的另一件事。
    • 服务器脚本在这里出错。不幸的是,我看不出它是如何解决的。作为最后的手段,尝试转义 CDATA 分隔符,例如">![CDATA[hello]]
    • 糟糕,我的意思是
    猜你喜欢
    • 2014-07-11
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 2013-07-15
    相关资源
    最近更新 更多