Javascript 将HTML从servlet发送到js应用程序会破坏Firefox中的数据
我使用Javaservlet和js端的iframe将一些HTML代码发送回iframe。实际上,我只是通过使用jQuery将HTML代码中的一些json封装在一个Javascript 将HTML从servlet发送到js应用程序会破坏Firefox中的数据,javascript,json,servlets,mime-types,Javascript,Json,Servlets,Mime Types,我使用Javaservlet和js端的iframe将一些HTML代码发送回iframe。实际上,我只是通过使用jQuery将HTML代码中的一些json封装在一个中来解析,但是返回的字符串有时会添加文本 如果添加的文本中有一个带有尖括号的单词,Firefox会自动为我关闭括号,这是我不想要的 例如,如果我发送此邮件: <div>{"location":[],"columns":["<case expression>","headers"]}</div> {“
中来解析,但是返回的字符串有时会添加文本
如果添加的文本中有一个带有尖括号的单词,Firefox会自动为我关闭括号,这是我不想要的
例如,如果我发送此邮件:
<div>{"location":[],"columns":["<case expression>","headers"]}</div>
{“位置”:[],“列”:[“”,“标题”]}
Firefox(到目前为止只有Firefox,不是IE或chrome)将通过以下方式接收:
<div>{"location":[],"columns":["<case expression>","headers"]}</case></div>
{“位置”:[],“列”:[“”,“标题”]}
这搞砸了我的分析。我发送的文本的内容类型为text/html
,我认为这可能是问题的原因。我尝试了application/json
的Content-Type
,但除非我使用text/html
,否则它不会将html写入iframe
有人能帮我解决吗?如果数据不太广泛,我愿意尝试另一种发送数据的方法。为了防止浏览器将HTML元字符解释为HTML元字符,以便您的“”字符最终成为文本的一部分,您可以将它们作为HTML实体“转义”。“”是
。人们通常也将符号(&)引用为&但是我认为浏览器在这方面通常会更聪明一些
按OP编辑代码解决方案:
我使用了StringEscapeUtils.escapeHTML()
,效果非常好。谢谢 在将文本添加到HTML之前,您必须在某个时候对内容进行HTML转义。字符“”是元字符,不能出现在HTML中的任何位置;您必须将它们编码为“”和“”。您能发送JSON,然后在页面上运行的JavaScript中编写HTML吗?@tinyd我正在通过检查填充的iframe来读取数据,所以在我有机会阅读之前,所有内容都会被写成HTML。@Pointy,好的,我会尝试一下,谢谢。@Pointy,很酷,效果很好。想知道答案吗?这样我才能给你应得的荣誉?