2015-02-23 40 views
0

我爲我的移動應用程序構建了web api。我在瀏覽器的本地主機上測試它,它會按照預期返回json,但是每當我將它放在azure上並點擊相同的URL時,我就不會收到任何數據,但Chrome中的谷歌網絡(開發者控制檯)表示它已經檢索到408B數據,但沒有內容顯示json應該在哪裏?asp.net web api json不在服務器上返回

我沒有正確配置什麼?

我已經進入了Global.ascx文件,並添加代碼

public static void Register(HttpConfiguration config) 
    { 
     config.EnableCors(); 
    } 

以下行並添加EnableCors屬性上的WebAPI控制器類的頂部,並設置前綴路由器了。

我錯過了什麼?

控制器代碼請參閱下面的代碼片段。該數據庫是EF Code First從已存在的數據庫生成的。請注意。

[EnableCors(origins: "*", headers: "*", methods: "*")] 
    [RoutePrefix("api/numbers")] 
    [AllowAnonymous] 
    public class NumbersController : ApiController 
    { 
     private MegaMillions db = new MegaMillions(); 

     [HttpGet] 
     public HttpResponseMessage Get() 
     { 
      return db.Numbers.Take(10).ToList(); 
     } 

     // GET: api/Numbers 
     public List<Number> GetNumbers() 
     { 
      return db.Numbers.ToList(); 
     } 
}   

如果我能弄清楚如何讓列表工作,其他CRUD操作將跟隨。

回答

0
[EnableCors(origins: "*", headers: "*", methods: "*")] 
[RoutePrefix("api/values")] 
public class ValuesController : ApiController 
{ 
    List<Doctor> doctors = new List<Doctor>(){ new Doctor { Id = 1, FirstName = "Carl Finch", LastName = "Finch" }, new Doctor { Id = 2, FirstName = "Carl", LastName = "Finch" } }; 
    // GET api/values/5 
    [Route("Get")] 
    public string Get() 
    { 
     return "This is my controller response"; 
    } 

    [Route("GetNumbers")] 
    public List<Doctor> GetNumbers() 
    { 
     return doctors; 
    } 
} 

所以在web api中的每個方法添加路由後,它工作得很好!

所以請記住,聲明RouterPrefix並不足以獲取數據,web api中的每個方法都必須具有正確的路由器屬性。

+0

如果我錯了,請有人編輯這個,但我可以在Azure服務器上測試後接收數據。 – 2015-02-23 07:26:34