0

get から次のメッセージが返されました。

{"status":"success"}

私のコードは次のようになります。

$.get(url, function(result) { 
        console.log(result)                  
        console.log(result['status'])
            console.log(result.status)          
        return false;
    });

これにより、次のように出力されます。

{"status":"success"}
undefined
undefined

私は何を間違っていますか?

4

4 に答える 4

1

console.logが表示されている場合"{"status":"success"}"は、JSON が解析されていないことを意味します。jQueryにそれを行うように指示する必要があります:

$.get(url, function(result) { 
    console.log(result);     
    console.log(result['status']);
    console.log(result.status);
}, 'json');

または、さらに良いこと:

$.getJSON(url, function(result) { 
    console.log(result);     
    console.log(result['status']);
    console.log(result.status);
});
于 2013-10-31T21:38:29.597 に答える
1

JSON データを受け取る予定であることを指定する必要があります。jQuery.getこれは、関数のさらに別のパラメーターです

$.get(url, function(result) { 
    console.log(result)                  
    console.log(result['status'])
        console.log(result.status)          
    return false;
}, 'json'); // <---- HERE

それがなければ、 yourresultは文字列として扱われます。

于 2013-10-31T21:38:42.410 に答える
0

あなたの JSON は、JSON として識別する適切な HTTP ヘッダーで提供されていない可能性があります (ブラウザーの開発ツールの [ネットワーク] タブでヘッダーを確認できます)。解析されていない可能性があります。試す

console.log(JSON.parse(result)['status'])

または を に設定datatype"json"ます。

サーバーを管理している場合は、ヘッダーを修正する必要があります。

于 2013-10-31T21:35:48.713 に答える
0

おそらく: 間違ったContent-Typeヘッダーで JSON を提供しているため、jQuery は JSON パーサーを介して渡していません。

URL がContent-Type: application/jsonヘッダーに返されることを確認します。

于 2013-10-31T21:35:58.630 に答える