web-dev-qa-db-ja.com

TypeError:aは未定義です

$.eachメソッドを使用しようとすると、jQueryv1.7.2コードで上記のエラーが発生します。

$.post('url_of_php_file.php',
            $.param( {

            }),
            function(data){
                $.each(data.articles, function(index, value){
                .....
});

リクエストは次を返します。

{"articles": [
    {
        "id":"11",
        "date":"2012-12-19 15:52:06",
        "title":"url_title",
        "link":"url_link",
        "available":"1"
     },
    ..... *more rows like the above*
]}

なぜこのエラーが発生するのですか?

9
devmonster

あなたがしたことがjQuery内でエラーを引き起こしました。これは99.9%の確率でコードのバグであり、jQueryのバグではありません。

役立つのは、jQueryの開発バージョンを使用することです。縮小されません。つまり、abなどの代わりに完全な変数名が残ります。

送信しましたか:

_header('Content-Type: application/json');
_

echo json_encode($data);の前?これにより、jQueryのJSON検出がトリガーされます。 _$.each_の前にconsole.log(data);を追加して、データが期待どおりに表示されることを確認します。

13
Bob Fanger