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:予期しない文字 myData=JSON.parse(data.fillRemarksListResult, function (key, value) { *

ALSO MY AJAX CALL RETURNS [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 ドキュメントに従って、プロパティを指定すると、jQuery はサーバーからの応答dataType:'json'を自動的に受け取り、 d JSON オブジェクトを成功のコールバックに渡します。parseparse

この場合、parseJSON オブジェクトを呼び出しているため、エラーがスローされます。

dataType:"json"したがって、返された文字列を指定して解析しないか、指定して解析dataType:"json"しないでください。

于 2013-01-29T12:02:26.180 に答える