LINUX.ORG.RU

Можно ли с сервера через ajax передавать блоки html в json ?

 , , ,


0

2

Привет

При работе с ajax проявилась проблема: если передавать html код в ответе сервера внутри json (для вставки его на стороне браузера) то антивирус может воспринять это как угрозу и начать блокировать(было с касперским несколько раз). Если же передавать html с dataType html, то все нормально, но так можно передать только один кусок и нельзя параллельно передать например несколько параметров

Вопрос такой: нормально ли передавать куски html кода в json ? Существуют ли на этот случай какие-то правила ?

★★★

Может быть вместо json передавать-таки html, и вставлять его куда нужно? зачем именно обертка в виде json?

bvn13 ★★★★★
()

антивирус может воспринять это как угрозу и начать блокировать(было с касперским несколько раз).

Ну, закодируй в base64 :)

Хотя фигня какая-то, часто HTML-код передаю в JSON, жалоб не было :)

KRoN73 ★★★★★
()
Ответ на: комментарий от bvn13

Да, это правильней, но иногда с блоком html надо передать несколько параметров, а такой режим не позволяет это сделать, я засовывал параметр в div data, но это уже треш

ism ★★★
() автор топика
Ответ на: комментарий от KRoN73

Ну сработка антивируса и у меня была редка, видно эвристика чтото находила. При ее отключении все было нормально

Прикол в том, что пользователи при такой проблеме ничего не сообщат

ism ★★★
() автор топика

Вопрос в упоротых антивирусах, которые лезут, куда не надо. Возможно, это проявляется только у небольшого числа клиентов с какой нибудь самой дорогой максимальной редакцией антивируса с мифическими убер защитами. Тогда, наверное, пофиг. Иначе кодируй, как верно заметили выше, в base64.

KivApple ★★★★★
()

Нет смысла передавать html, передавай json и рендери через react/preact/riot/vue в нужном компоненте.

menangen ★★★★★
()

Как написали выше, нельзя передавать только данные и рендерить html на клиенте?

chrisred
()
Ответ на: комментарий от menangen

Я так и начал делать, но применить react и подобное пока смысла нет

А так стает вопрос, где хранить темплейты для рендеринга при формировании на клиенте, с этим морока

Рендеринг на сервере и передача готового блока на клиент намного удобнее так как там темплейты в одном месте и работают одинаково. Да и ссылки валидируются при создании (это диджанго)

ism ★★★
() автор топика
Ответ на: комментарий от ism

1) вырубить антивирусник

2) передавать то что антивирусник не вырубит: xml, xhtml, etc...

Да и что это за антивирус где нету исключений?

chrisred
()
Ответ на: комментарий от chrisred

У себя то вырублю, а у пользователей сайта нет. Они даже не поймут почему не работает

2 так и делаю

ism ★★★
() автор топика
Последнее исправление: ism (всего исправлений: 4)

Всё это выглядит как какой-то костыль. Либо передавай сразу html, либо только данные по json, а html собирать на клиенте. Если не хочется лезть в дебри Angular и React, есть прекрасный Vue, который можно быстро освоить, а получить даже больше профита, чем от тех двух.

th3m3 ★★★★★
()
Последнее исправление: th3m3 (всего исправлений: 1)
Ответ на: комментарий от pawnhearts

К mustache давно присматриваюсь, но нет пока задач, чтоб его отдельно использовать Обошёлся underscore с его примитивным темплейтом, чтоб не подключать лишних js

Похоже тут остается 3 варианта,

1 Передавать html в json в base64, но это очень нехорошо.

2 Таки рендерить на клиенте, учитывая что это проще и меньше передается по сети, это лучший вариант

3 Передавать чистый html, негибко и подходит только для простых задач

ism ★★★
() автор топика
Последнее исправление: ism (всего исправлений: 1)

передавать html код в ответе сервера внутри json

Это такой сорт pjax?

антивирус

Не нужен. Если сайт публичный — то ничего не поделаешь, впрочем. Можешь попытаться настучать в поддержку касперского.

x3al ★★★★★
()
Ответ на: комментарий от pawnhearts

А как насчет ember? Как он в сравнении с vue?

Не добрался до него в своё время. Ничего сказать не могу. Но вроде хвалят. Как сейчас - не знаю. Сейчас в мейнстриме Angular/React и Vue.

th3m3 ★★★★★
()
Ответ на: комментарий от nikolnik

Антивирус должен реагировать на вирусы, а не на быдлокодеров.

KivApple ★★★★★
()

Специально для неосиляторов реакта, ангуляра и вью: http://ru.matreshka.io/

Но могу сказать, что достаточно многие проекты толкают html текстом в полях json'а.

nihirash ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.