我有一个HTML格式:
<form>
<input type="hidden" id="hiddenField"/>
...Other form fields
</form>
在这种形式中,我想用xml数据设置一个隐藏字段。
任何人都可以建议是否可以直接使用xml数据设置隐藏字段。
即在我的javascript函数中,使用xml直接设置隐藏字段是安全的,如:$(#hiddenFiled).val(xml);
并在我的java servlet中获取xml吗?请建议。
答案 0 :(得分:0)
如果没有编码,你不能保留xml 您可以选择
var stringValue=escape(xml);
var xmlValue= unescape (stringValue)
在javascript中
虽然这些方法已在较新版本中弃用,但您可以在其他库中找到它,例如http://underscorejs.org/#escape UnderScoreJs
如果XML包含敏感信息,也不要将XML保留在隐藏字段中。
答案 1 :(得分:0)
隐藏的表单字段不适用于会话跟踪。
我们有两种会话跟踪机制,它们是cookie和URL重写,最新的是没有在浏览器中启用cookie的人,我只能理解当你在隐藏字段中发送会话ID有你自己的会话跟踪器,并没有使用已经与你的服务器容器(HttpSession和所有)的那个,但为什么重新发明轮子?
隐藏字段用于在页面之间传递信息,有时我使用a,我显然不希望向用户显示该信息
答案 2 :(得分:0)
发布不带javascript
或浏览器插件的XML是不可能的。您不应将其直接作为表单参数发送。 See this answer for more info:
使用在发送到服务器时encode
的库,以及在服务器端decode
的库。
Underscore.js提供此类功能。请参阅documentation:
<强> escape_.escape(字符串)强>
转义字符串以插入HTML,替换&amp;,&lt;,&gt;,“,”和“字符。_.escape('Curly, Larry & Moe'); => "Curly, Larry & Moe"
<强> unescape_.unescape(字符串)强>
与逃避相反,用未转义的对手替换&amp;,&lt;,&gt;,“,”和'。_.unescape('Curly, Larry & Moe'); => "Curly, Larry & Moe"
但是,请记住,浏览器通常会限制您可以通过GET
请求发送的数据量(大约255个字节)。因此,即使发送已编码的POST
,使用GET
代替XML
始终是一个不错的选择。