0

jQueryを使用して名前のリストをJSON文字列として取得しています-

`

$.ajax({ type: 'POST', url: "../Names.aspx", dataType: 'json', contentType: "application/json; charset=utf-8", data: "NAME=ALL_PROFILES", success: function (data, textStatus, jqXHR)` {

                var html = '';


                var obj = jQuery.parseJSON(data);
                $.each(obj, function (key, val) {
                    html += '<option value="' + val + '">' + val + '</option>';
                    alert("Success" + val);
                })
                $('#selName').append(html);
                $('#selName').selectmenu('refresh');


            },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert('Error ' + jqXHR.val + errorThrown.val + textStatus.val);
                }
            });

バックエンドはasp.netページであり、デバッグすると、文字列をとして取得します。これをJSONLint"{"Name":["Maria","John","Raj","Rosh","Tony","Name","test3","test4","test5","test6"]}"に入れて、検証します。上記のAJAXリクエストでエラーを返します。単一の文字列で試してみると、完全に機能します。オプションを追加する関数は、JSON文字列の配列に対して正しくありません(成功ブロックに入ったら処理します)が、有効なJSON文字列を返すときにエラーが返される理由がわかりません。どんな助けでもいただければ幸いです。undefined"Name":"John"undefined

4

2 に答える 2

0

aspxページが有効なJSONを返し、を使用している場合、jQueryは返されたJSON文字列をオブジェクトに解析しているため、返されたデータにはdataType: 'json'使用しないでください。jQuery.parseJSON()

使用する場合、"Name":"John"それは有効なJSONではないため、JQueryはerrorコールバックに入ります。

于 2012-04-18T02:33:29.357 に答える
0

結果の周りに余分なparanthesisを置くと、それは機能します。JSONLintが現在それを検証していないので、それは奇妙です。

于 2012-05-11T01:47:46.690 に答える