2013-07-24 17 views
2

一個JSON對象,我不能讓我返回的數據的屬性。我對原型很新。我的錯誤在哪裏?如何讀取原型

這裏是我的代碼:

<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); 
    } 
+0

什麼是responseText?你得到你所期望的? –

回答

1

你應該改變這一行

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

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

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

如果你的後臺腳本發送頭Content-type: application/jsonAjax.Request()方法會自動轉換成JSON你的反應,它會在val.responseJSON存在於你的榜樣。

Ajax.Request()設置contentType: 'application/json; charset=utf-8',不需要在這種情況下。

爲了使ASP.NET添加自定義標題,我認爲您使用

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

,但我不是一個ASP.NET開發人員