从servlet向js应用程序发送HTML会破坏Firefox中的数据

时间:2012-03-22 17:17:12

标签: javascript json servlets mime-types

我正在使用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。

有人可以帮我解决问题吗?如果数据不太广泛,我愿意尝试另一种发送数据的方法。

1 个答案:

答案 0 :(得分:2)

为了防止浏览器解释HTML元字符,以便你的“&lt;”和“&gt;”字符最终作为文本的一部分,您可以将它们“转义”为HTML实体。 “&lt;”字符为&lt;,“&gt;”是&gt;。人们通常也会将&符号(“&amp;”)引用为&amp;但我认为浏览器通常会更加明智。

OP编辑代码解决方案:

我使用StringEscapeUtils.escapeHTML(),效果很好。谢谢!