我正在使用java servlet和js端的iframe将一些HTML代码发送回iframe。我实际上只是通过使用jQuery将它包装在单个<div>
中来解析HTML代码中的一些json,但是有时发回的字符串会添加文本。
如果添加的文字有一个带有括号尖括号的单词,Firefox会自动为我关闭括号,这是我不想要的。
例如,如果我发送此信息:
<div>{"location":[],"columns":["<case expression>","headers"]}</div>
Firefox(目前只有Firefox,而不是IE或Chrome)会收到它:
<div>{"location":[],"columns":["<case expression>","headers"]}</case></div>
搞砸了我的解析。我发送带有Content-Type
text/html
Content-Type
的文字,我认为这可能会导致问题。我已尝试application/json
text/html
,但除非我使用{{1}},否则不会将iftml写入iframe。
有人可以帮我解决问题吗?如果数据不太广泛,我愿意尝试另一种发送数据的方法。
答案 0 :(得分:2)
为了防止浏览器解释HTML元字符,以便你的“&lt;”和“&gt;”字符最终作为文本的一部分,您可以将它们“转义”为HTML实体。 “&lt;”字符为<
,“&gt;”是>
。人们通常也会将&符号(“&amp;”)引用为&
但我认为浏览器通常会更加明智。
OP编辑代码解决方案:
我使用StringEscapeUtils.escapeHTML()
,效果很好。谢谢!