引号转换成字符串中的代码

Quotation mark converted into code in string

我有一个用例,其中对象通过 EJS 从服务器传递到客户端,如下所示:

res.render('mytemplate', {data: myobject});

<script type='text/javascript'>
        <% if (typeof data !== 'undefined' && data) { %>
          data: '<%= JSON.stringify(data) %>',
        <% } %>
</script>

我遇到这个问题,在客户端代码中,返回的字符串化对象看起来像

{&#34;key&#34;:&#34;value&#34;}

而它应该是

{"key":"value"}

因此,当我在客户端代码中执行 JSON.parse() 时,出现错误。如何在字符串中保留引号而不是特殊字符代码?谢谢!

我认为您需要在模板中使用 unescaped 方式:

data: '<%- JSON.stringify(data) %>',

注意 <%- 而不是 <%=

请参阅文档“标记”部分:https://ejs.co/#docs