Отправка HTML из сервлета в js-приложение повреждает данные в Firefox - PullRequest
0 голосов
/ 22 марта 2012

Я отправляю некоторый HTML-код обратно в iframe, используя java-сервлет и iframe на стороне js.На самом деле я просто анализирую некоторые json из кода HTML, заключая их в один <div>, используя jQuery, но в возвращаемой строке иногда добавляется текст.

Если добавляемый текст имеет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, но он не будет писать html в iframe, если я не использую text/html.

Может кто-нибудь помочь мне с решением?Я готов попробовать другой способ отправки данных, если он не слишком обширный.

1 Ответ

2 голосов
/ 22 марта 2012

Чтобы браузер не интерпретировал метасимволы HTML как таковые, чтобы ваши символы «<» и «>» заканчивались как часть текста, вы можете «экранировать» их как сущности HTML.Символ «<» равен <code>&lt;, а символ «>» - &gt;.Люди обычно также цитируют амперсанд ("&") как &amp;, но я думаю, что браузеры, как правило, немного умнее.

Редактирование с помощью OP для решения кода:

Я использовал StringEscapeUtils.escapeHTML(), который работал отлично.Спасибо!

...