【发布时间】:2019-11-25 10:48:17
【问题描述】:
我有相同的输入字段,用户在其中输入一些数据。接下来我的代码将其转换为 JSON 并将其发送到服务器。
$("#submit").click(function(){
var inp = $("#inpTxt").val();
if(inp == null || inp == ""){
return;
}
jsonResult = JSON.parse('{"data": "' + inp + '"}');
$.ajax({
data : jsonResult,
...
});
});
这里的问题是,上面的代码有时可以工作,有时却不能。 大多数时候我测试了代码,它就像一个魅力,但在制作中我不断收到多次报告的错误。
我还没有弄清楚可能的原因。
注意:上面没有共享代码的某些部分,而只是问题的一部分。
【问题讨论】:
-
无论如何,你的所作所为似乎有点毫无意义.. 就做
jsonResult = {data: inp} -
不,你不需要那样做。
inp是一个字符串。 -
一个简单的输入,即
inp='something"something'可能会破坏代码,我会第二个@Keith -
@Noob46 似乎这个错误是由于没有正确处理转义字符尝试输入“Hello”或\Hello,看看你是否收到错误。
-
我只能重申,在这里使用
JSON.parse是完全没有必要且容易出错的。jsonResult = {data: inp}为您提供完全相同的结果而没有问题。如果您认为必须使用JSON.parse,请解释您为什么这么认为?这将帮助我们解决您的疑虑。
标签: javascript jquery json escaping