0

我有以下 ajax 来调用我的服务,该服务从数据库中获取一些记录并将其填充到我的前端...但是我收到 json:unexpected character 错误...请您帮我解决这个问题...

'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:unexpected character myData=JSON.parse(data.fillRemarksListResult, function (key, value) { *

当作为警报给出时,我的 AJAX 调用还返回 [object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]...

4

1 回答 1

9

有2种方法可以解决这个问题

方式1]

dataType:"json",从您的$.ajax通话中删除。回答使用JSON.parse().

方式2]

保持dataType:"json",原样,不要使用JSON.parse()

为什么 为什么 为什么

以下是原因。根据$.ajax()API 文档,当您指定dataType:'json'属性时,jQuery 将自动parse响应来自服务器的响应并将parsed JSON 对象传递给您的成功回调。

在这种情况下,您正在parse调用 JSON 对象,这就是引发错误的原因。

所以要么不指定dataType:"json"并解析返回的字符串,要么指定dataType:"json"并且不解析它。

于 2013-01-29T12:02:26.180 回答