我必须向第三方网站提交HTML表单,其中一个隐藏字段是XML字符串 . XML需要在发送给第三方之前进行转义 .
然而,当我将纯XML添加到表单字段时,它为我半逃 . 那么当我使用HTMLEncode时,我自己的部分XML是双重转义的 . 如何防止似乎从.NET变为自动转义 .
或者更好的是,如何通过隐藏字段发送转义的XML .
XML
<systemCode>APP</systemCode>
基本分配给隐藏的输入字段
<systemCode>APP</systemCode>
当我对HTML进行编码时也是如此
&lt;systemCode&gt;APP&lt;/systemCode&gt;
我可以看到发生了什么 - 但我不知道如何预防它?
3 回答
不要使用HTMLEncode as well !用它 alone !
就像是:
最后,我使用了一个文字然后HTMLEncoding XML字符串,然后将HTML表单变量分配给文字文本字段 . 有点像下面:
不优雅,但它正在规避问题 .
您不了解HTML是完全转义还是部分转义 - the same data gets submitted either way .
这两个领域:
提交为:
xml=%3CsystemCode%3EAPP%3C%2FsystemCode%3E
这与语言无关 - 它是浏览器行为 . 当浏览器解析HTML时,它实际上会将两个字段规范化以具有相同的html . 如果您查看页面的来源,您将看到源HTML在输入之间有所不同,但如果您读取
form.innerHTML
值,您将看到解析的HTML是相同的 .Demo:
http://jsfiddle.net/gilly3/Xdj5E/