【发布时间】:2017-02-24 22:37:01
【问题描述】:
您好,我正在使用 angularjs 开发 web api 应用程序。我在一个控制器中有 GET 三种方法,但它们都没有调用。例如,
public class usersController : ApiController
{
//First Get method.
[HttpGet]
[SuperAdmin]
[LoginCheck]
[ActionName("me")]
public HttpResponseMessage me()
{
}
//second Get method.
[LoginCheck]
[SuperAdmin]
public IHttpActionResult Get(int id)
{
}
//third Get method.
[HttpGet]
[LoginCheck]
[SuperAdmin]
public HttpResponseMessage Get(string role)
{
}
我正在使用以下代码调用。
this.getSubs = function () {
var role = "SUPER_ADMIN";
//role is optional here
var url = '/api/users/' + role;
return $http.get(url).then(function (response) {
return response.data;
});
}
this.getcurrentuser = function () {
var url = '/api/users/me/';
return $http.get(url).then(function (response) {
return response.data;
});
}
this.getSubsbyID = function (id) {
var url = '/api/users/' + id;
return $http.get(url).then(function (response) {
return response.data;
});
}
我的路由如下。
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我无法使用 angularjs 调用三种方法中的任何一种。我可以知道我在哪里做错路由吗?任何帮助,将不胜感激。谢谢你
【问题讨论】:
-
您能否发布实现这些方法的服务(或控制器)?此问题可能有多种原因,请提供更多信息。
-
如果您认为是路由问题,请同时发布您的路由
-
谢谢。我加载资源失败:服务器响应状态为 400(错误请求)localhost:22045/api/users/SUPER_ADMIN
-
您是否使用任何代理服务器,例如 apache 或 nginx?
-
不,我在 localhost 中运行。
标签: angularjs asp.net-web-api routing