Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将HTML从servlet发送到js应用程序会破坏Firefox中的数据_Javascript_Json_Servlets_Mime Types - Fatal编程技术网

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

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> {“

我使用Javaservlet和js端的iframe将一些HTML代码发送回iframe。实际上,我只是通过使用jQuery将HTML代码中的一些json封装在一个
中来解析,但是返回的字符串有时会添加文本

如果添加的文本中有一个带有尖括号的单词,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,很酷,效果很好。想知道答案吗?这样我才能给你应得的荣誉?