0

更新: @MESSIAH から、これを短くするように言われました。これがベアボーンバージョンです。

ajax 呼び出しからの応答を解析できません。ぐるぐる回り続けます。Google は基本的に、これが問題だと言っています。まあ、ajax 呼び出しで json を取り出すか、parse を呼び出すかは関係ありません。エラーが発生します。

JSON.parse() を使用せずに直接解析すると、次のUncaught TypeError: Cannot read property 'time' of undefined ようになります。

現在、解析しようとしているため、これを取得しています。現在取得しているものは次のとおりです。わかりました。Uncaught SyntaxError: Unexpected token u つまり、 parsedです。

これが私のajax呼び出しです:

var reply;
    function sendRouteRequest()
    {
        $.ajax({
            type: 'GET',
            //contentType: "application/json; charset=utf-8",
            url: '/api/getReply',
            data: data, 
            dataType: 'json',
            success: function(result)
            {
                reply = result;
                console.log(reply);
                console.log(reply.time);
            },
            error: function(jqXHR, textStatus, errorThrown)
            {
                alert("Error: " + textStatus + " exception: " + errorThrown);
            }

        });//End of ajax


    }

関連するコードは次のとおりです。

function parseJson()
{
    //data = JSON.stringify(reply);
    jsonData = JSON.parse(reply);   
    console.log(jsonData.time);    
}

コンソールでの応答は次のようになります。

Object
alert: Object
points: Array[30]
points: Array[30]
time: 4.72
__proto__: Object
status: Object
__proto__: Object

しかし、 console.log(reply.time) は私に undefined を与えます。うーん?

ぐるぐる回る。

オタク

UPDATE : ここに示されていない関数で parseJson() を呼び出しています。$(document).ready(function(){ //blah blah blah}

サーブレットは application/json 形式を返します

4

1 に答える 1

1

これは良い反応に見えません。たとえば、なぜ2つのポイントがあるのか​​ 。

points: Array[30]
points: Array[30]

取得した応答を印刷できますか。JSON 応答ではなく、JavaScript オブジェクトのように見えます。

json 応答の場合は、次のようになります。

[{"alerts" : {}, "points": [], "time": 4.72 ......}]

この行のコメントを外すと思います

dataType: 'json',
于 2013-07-17T19:50:33.953 に答える