【发布时间】:2019-06-26 16:28:44
【问题描述】:
我有一个 JSON 数组:
info = [{"name":"abc", "rank" : 1},{"name":"xyz", "rank":2},{"name":"pqr", "rank":3}];
我正在尝试使用 jQuery 将其作为输入值传递给隐藏字段,并使用 POST 请求将其发送到服务器。
$('<form action="/info/saveAll" method="POST"/>')
.append($('<input type="hidden" name="info" value="' + JSON.stringify(info) + '">'))
.appendTo($(document.body))
.submit();
在服务器端,我将info的值访问为:
router.route('/saveAll')
.post((req, res) => {
let info = JSON.parse(req.body.info);
console.log(info); //SyntaxError: Unexpected end of JSON input
})
如果我在提交之前没有stringify 数组,那么typeof info 仍然会在帖子中返回字符串,当我尝试parse 字符串类型时,我会收到类似SyntaxError: Unexpected token o in JSON at position 1 的语法错误。
我知道这可以通过 ajax 发布请求来完成,但我想要一个不涉及 ajax 请求的解决方法。
任何帮助都会很棒。
【问题讨论】:
-
@Emma 它不适用于修剪,或者如果我使用 concat。你建议的帖子有ajax请求。我在我的问题中提到我不想使用 ajax 请求。
-
@Emma 问题是生成的 HTML 已损坏,因为 JSON 字符串可以包含保留字符,例如
"。
标签: javascript jquery html node.js json