2

返されたデータのプロパティを取得できません。私はプロトタイプで非常に新しいです。私の間違いはどこですか?

これが私のコードです:

 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"></script>
<script>
    var xRequest = new Ajax.Request('PrototypeTest.aspx/Test', {
        method: 'post',
        contentType: 'application/json; charset=utf-8',
        onSuccess: function (val) {
            var brands= val.responseText.evalJSON();
            alert(brands);
        },
        onerror: function (val) {
            alert('hata');

        }
    });
</script>

   [WebMethod]
    public static string Test()
    {
        List<brand> brands = new List<brand>();
        brands.Add(new brand()
            {
                Name = "BMW",
                IsActive = true
            });

        var json = new JavaScriptSerializer();
        return json.Serialize(brands);
    }
4

2 に答える 2

1

この行を変更する必要があります

`var brands= val.responseText.evalJSON();` 

`var brands= JSON.parse((JSON.parse(val.responseText));` 

また

`var brands= val.responseText.evalJSON().d.evalJSON();` 
于 2013-07-25T07:07:43.717 に答える
0

バックエンド スクリプトがヘッダーを送信するとContent-type: application/jsonAjax.Request()メソッドは応答を JSON に自動変換val.responseJSONし、例に存在します。

contentType: 'application/json; charset=utf-8',この場合、 の設定Ajax.Request()は必要ありません。

ASP.NETにカスタムヘッダーを追加するには、使用すると思います

Response.AppendHeader("Content-type", "application/json");

しかし、私は ASP.NET 開発者ではありません

于 2013-07-24T20:05:33.080 に答える