2017-02-24 69 views
0

您好,我正在開發與angular2應用程序的web api應用程序。我正在嘗試如下獲取請求。如何調用web api get angularjs中的方法?

以下是我的angularjs代碼。在下面的代碼角色是可選參數。

var role = "SUPER_ADMIN"; 
    var url = '/api/users/' + role; 
    return $http.get(url).then(function (response) { 
     return response.data; 
    }); 

這是我的控制器代碼。

[RoutePrefix("api/users")] 
    public class usersController : ApiController 
{ 
     [LoginCheck] 
     [SuperAdmin] 
     public HttpResponseMessage Get(string role) 
     { 
     //business logic here 
     } 
} 

我還有一個get方法如下。這被稱爲insted以上。

[HttpGet] 
    [ActionName("me")] 
    public HttpResponseMessage Get() 
    { 
    } 

Aboce代碼不起作用。我可以在這裏得到一些幫助嗎?任何幫助,將不勝感激。謝謝。

+0

任何控制檯 – Sankar

+0

是錯誤謝謝。無法加載資源:服務器響應狀態爲405(方法不允許)http:// localhost:22045/api/users/SUPER_ADMIN –

+0

嘗試在此行之前放置'[HttpGet]'公共'HttpResponseMessage Get(字符串角色) '。 405表示**請求行中收到的方法由源服務器知道,但目標資源不支持** – Sankar

回答

0

你可不可以將[Route]屬性放在你的兩個動作上,並在你的api中啓用AttributeRouting?所以,如果你這樣做,那麼你通過指定具體的動作名稱來調用你的端點。因此,像這樣:

[LoginCheck] 
    [SuperAdmin] 
    [Route("AdminGet/{role}")] 
    public HttpResponseMessage Get(string role) 
    { 
    //business logic here 
    } 

    [HttpGet] 
    [ActionName("me")] 
    [Route("UserGet")] 
    public HttpResponseMessage Get() 
    { 
    } 

和你的終點變成: http://servername/api/users/adminget?role= 「東西」 http://servername/api/users/userget