我有相同的输入字段,用户可以在其中输入一些数据。接下来,我的代码将其转换为JSON并将其发送到服务器。
$("#submit").click(function(){
var inp = $("#inpTxt").val();
if(inp == null || inp == ""){
return;
}
jsonResult = JSON.parse('{"data": "' + inp + '"}');
$.ajax({
data : jsonResult,
...
});
});
这里的问题是上面的代码有时有效,有时却无效。在大多数情况下,我测试代码的过程都非常吸引人,但在生产环境中,我不断收到多次报告错误的信息。
我还无法找出可能的原因。
注:上面未共享代码的某些部分,而只是问题的一部分。
使用JSON.Parse函数时,您需要自己处理特殊字符。因此,如果有人在您的inpTxt输入中输入“”,则会在解析该字符串时导致错误。
您应该执行类似以下代码的操作,以避免解析错误,并让javascript正确处理字符串上的特殊字符。
jsonResult = { data: inp };
我创建了一个JS小提琴,以使其更易于理解。https://jsfiddle.net/ub3w0a8x/
根据最后一条评论,似乎有人在输入中输入了一些转义字符时会出现问题(@ Noob46确定了使用“ Something”大小写的情况,但在我看来,如果还有其他转义字符,例如\或其他其他以\开头也可能导致相同的问题)。