我有以下ajax调用我的服务从数据库中取出一些记录并在我的前端填充它...但我得到了json:意外的字符错误...请你帮我解决这个问题.. 。
'http://localhost/WcfService/Service1.svc/remarksList';
var tempyear="";
$.ajax({
url: urlToHandler,
data:JSON.stringify({oei:{"reqNo1":reqNo,"loginid":userid}}),
type: 'POST',
dataType:"json",
contentType: 'application/json',
success: function(data) {
alert(data.fillRemarksListResult);
myData = JSON.parse(data.fillRemarksListResult, function (key, value) {
var type;
if (value && typeof value === 'object') {
type = value.type;
if (typeof type === 'string' && typeof window[type] === 'function') {
return new (window[type])(value);
}
}
return value;
});
alert(myData);
$.each(data.fillRemarksListResult,function(key,val){
alert(val.rmrkreqNo1);
});
},
error: function(data, status, jqXHR) {
alert('There was an error.');
}
}); // end $.ajax
});
现在我收到此错误:
* Json.parse:意外的角色 myData = JSON.parse(data.fillRemarksListResult,function(key,value){ *
也是我的AJAX CALL RETURNS [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]作为alert提供......
答案 0 :(得分:9)
有两种方法可以解决此问题
方式1]
从dataType:"json",
电话中移除$.ajax
。
Ans使用JSON.parse()
。
方式2]
保持dataType:"json",
不变,不要使用JSON.parse()
为什么选择
原因如下。
根据{{1}} API文档,当您指定$.ajax()
属性时,jQuery将自动dataType:'json'
来自服务器的响应,并将parse
d JSON对象传递给您的成功回调。
在这种情况下,您重新parse
JSON对象,这就是抛出错误的原因。
因此要么不指定parse
并解析返回的字符串
要么
指定dataType:"json"
并且不解析它。