JSON.parse()不工作,即使JSON字符串是有效的
JSON.parse() not working even though JSON string is valid
我试图通过AJAX jQuery发布表单。它所指向的PHP脚本返回一个JSON编码的数组。但是,在主界面接收端,JSON.parse()
不工作。
请建议如果我错过了一些文件类型,需要包括
这是我的代码。
< script type = "text/javascript" >
$(document).ready(function() {
$("#send").submit(function() {
//$("#submit_form").html('');
$("#modal-text2").html("<img src=" + "img/loader1.gif "
+ "/></br</br><h4>DATA VALIDATION IN PROCESS !!! PLEASE WAIT</h4>");
$("#myModal2").modal('show');
$.post($("#send").attr("action"), $("#send").serialize(), function(data) {
var decode = JSON.parse(data);
if (decode.err > 0) {
alert("Hi");
}
});
//Important. Stop the normal POST
return false;
});
});
< /script>
PHP脚本返回的JSON编码数组是:
{"err":8,"er1":1,"er3":1,"er4":1,"er5":1,"er6":1,"er7":1,"er8":1,"er9":1,"error1":"First Name is Required","error3":"Last Name is Required","error4":"Email is Required","error5":"Please Select a Gender","error6":"Date of Birth is Required","error7":"Mobile No is Required","error8":"Password is Required","error9":"Please Fill The Captcha"}
我不知道这是问题的原因,还是只是这里的一个错别字,但你在下一行有一个错别字:
<img src="+"img/loader1.gif "+"/></br</br>
你没有关闭第一个换行符,斜杠应该在br之后-也不确定为什么你在HTML块中有这么多引号-它应该是:
$("#modal-text2").html("<img src='img/loader1.gif'/><br/><br/><h4>DATA VALIDATION IN PROCESS !!! PLEASE WAIT</h4>")
- 您应该console.log(data)检查
data
值是否有问题 -
如果JSON.parse中发生错误,使用try/catch捕获消息。
try { var decode = JSON.parse(data); }catch(e){ console.log(e) ; }
-
确保php以正确的方式响应json。或者可能有一些看不见的性格而制造问题。
<?php $data = ... ; header('Content-type:application/json;charset=utf-8'); echo json_encode($data) ; ?>
我认为在你的脚本中有一个语法错误,只是在脚本的最后一行检查出来有空间,删除它并尝试-
</script>
我执行你的代码的解析片段,它工作正常。
var data = '{"err":8,"er1":1,"er3":1,"er4":1,"er5":1,"er6":1,"er7":1,"er8":1,"er9":1,"error1":"First Name is Required","error3":"Last Name is Required","error4":"Email is Required","error5":"Please Select a Gender","error6":"Date of Birth is Required","error7":"Mobile No is Required","error8":"Password is Required","error9":"Please Fill The Captcha"}';
var decode = JSON.parse(data);
if (decode.err > 0) {
alert("Hi");
}
相关文章:
- 如何使用JSON字符串中的jQuery填充下拉框
- Json字符串可以'当字符串末尾有“'时,t解码;
- jquery从2个json字符串构建一个复选框表单
- RegEx只匹配JSON字符串中最里面的数组
- json字符串的Javascript帖子:没有任何东西传入或返回
- 使用javascript在MVC视图中解析.net JSON字符串
- 用Angularjs+Typescript将GZip Json字符串解压为普通Json字符串
- 如何将表单数据传递给PHP并将json字符串返回给Javascript
- 如何使用AngularJS应用基于Json字符串响应的条件CSS类
- 停止JSON.parse()从JSON字符串数据中删除尾随零
- 将JSON字符串转换为函数参数
- 在AngularJS中创建JSON字符串
- 为什么我不能使用jQuery.parseJSON(json)解析json字符串
- Json字符串更改日期
- JSON字符串格式错误
- Json和$scope的角度之间的差异$eval应用于JSON字符串时
- C#JSON字符串到JavaScript数组
- 如何在JSON字符串中实现嵌套HTML
- 如何从带有多个对象的JSON字符串创建JSON对象
- 使用捕获组查找和替换json字符串中出现的所有短语