我在访问 Node JS 中的隐藏字段值时遇到问题。我试图在 ejs 中提交表单时将数组作为隐藏字段值传递,然后尝试在表单提交时调用的 NodeJS POST 方法中访问该数组。
这就是我的数组“itm_mdf”的样子
[{"name":"零可乐","id":"1048647"}]。
我将数组作为隐藏字段值传递,如下所示
<form class="ui form" action="/items" method="POST">
<input type="hidden" name="modifiers" value=<%=JSON.stringify(itm_mdf)%>
<button class="btn btn-primary" type="submit">REORDER</button>
</form>
我正在 Node JS post 方法中访问数组,例如
app.post("/items",function(req,res){
console.log('itm_mdf *******'+req.body.modifiers);
}
但我看到数组值在 Post 方法中打印如下
itm_mdf ********[{"name":"可乐
当我在 Post 方法中执行 JSON.parse(req.body.modifiers) 时,我收到错误 SyntaxError: Unexpected end of JSON input。
您能否让我知道我在这里做错了什么以及我需要做什么来解决这个问题。
最佳答案
该值不带引号:
<input type="hidden" name="modifiers" value=<%=JSON.stringify(itm_mdf)%>
所以它应该像这样渲染:
<input type="hidden" name="modifiers" value=[{"name":"COKE ZERO","id":"1048647"}]>
这使得 value='[{"name":"COKE '
您需要引用它,但由于 JSON 使用双引号,您必须使用单引号,并希望数据中没有单引号:
<input type="hidden" name="modifiers" value='<%=JSON.stringify(itm_mdf)%'>
最佳解决方案是确保对值进行编码,以便呈现的数据中没有任何引号。
关于javascript - 访问隐藏字段数组值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58035308/