har*_*hvc 3 javascript ejs node.js
我通过JavaScript传递ejs数组.我可以使用ejs中的值,但不能使用JavaScript.以下是更多信息.
的node.js
FileTypes = {"application/octet-stream":20,
"audio/mpeg":12,
"text/html" :71}
res.render('index.ejs', {FileTypes: JSON.stringify(FileTypes)});
Run Code Online (Sandbox Code Playgroud)
index.ejs
<script type="text/javascript">
var FileTypes = <%=FileTypes%>;
//Error message on the console - Uncaught SyntaxError: Unexpected token &
</script>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
<%= %>在EJS中使用标记将转义输出,因此{"application/octet-stream": ... }正在变为{"application/octet-stream": ... },导致这样的JavaScript:
<script type="text/javascript">
var FileTypes = {"application/octet-stream":20,"audio/mpeg":12,"text/html":71};
</script>
Run Code Online (Sandbox Code Playgroud)
因此,您可以看到"意外令牌"的来源.解决方案是使用<%- %>标签,它不会逃避输出:
<script type="text/javascript">
var FileTypes = <%- FileTypes %>;
// here -----^
</script>
Run Code Online (Sandbox Code Playgroud)
......并会给你你想要的东西:
<script type="text/javascript">
var FileTypes = {"application/octet-stream":20,"audio/mpeg":12,"text/html":71};
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3689 次 |
| 最近记录: |