#javascript #node.js #express #ejs
#javascript #node.js #выразить #ejs
Вопрос:
Я пытаюсь отправить с postMessage
помощью JavaScript в шаблоне EJS, и мне нужно отправить простой строковый объект JSON, который выглядит следующим образом:
{ "id": "1234567890" }
Когда я пытаюсь передать этот объект в шаблоне EJS, двойные кавычки ( "
) экранируются amp;#34;
. Вот мой шаблон:
<script>
if (window.opener) {
window.opener.postMessage('<%= JSON.stringify(user) %>', "http://localhost:3000")
window.close()
}
</script>
Строковый объект превращается в это:
amp;#34;{amp;#34;idamp;#34;:amp;#34;1234567890amp;#34;}amp;#34;
Что я могу сделать, чтобы предотвратить экранирование специальных символов EJS?
Ответ №1:
Оказывается, мне нужно заменить <%=
на <%-
, чтобы использовать неэкранированные символы.
Итак, мой код должен быть:
<script>
if (window.opener) {
window.opener.postMessage('<%- JSON.stringify(user) %>', "http://localhost:3000")
window.close()
}
</script>