我正在使用web api开发角度js。
我有这个cotroller:Controller / MasterController,以及我的WebApi配置中的thi:
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我从Global.asax,Application_Start事件中调用此函数。
我从service.js中调用我的web api:
var service = function ($http) {
var _$http = $http;
self = this;
self.getMenuItems = function () {
var promise = _$http({
method: "GET",
url: 'api/Master'
}).success(function (data, status, headers, config) {
}).error(function (data, status, headers, config) {
});
return promise;
};
在调试模式下,我看到我到达了这个区域。 我在chrome控制台中遇到此错误: "无法加载资源:服务器响应状态为404"
这就是他想要去的地方:http://localhost:12345/api/Master
另外,我试图通过浏览器直接访问web api控制器,但我找不到它。
谢谢
答案 0 :(得分:0)
为确保您的API正常运行,请尝试以下操作:
的Global.asax.cs:
public class WebApiApplication : HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
WebApiConfig:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
MasterController:
using System.Web.Http;
namespace WebApi.Controllers
{
public class MasterController : ApiController
{
public string Get()
{
return "Hello world";
}
}
}
在浏览器中调用http:// localhost:[SomePort] / api / Master应该会导致: " Hello world"
创建新的WebApi时,上述配置都是标准配置。
答案 1 :(得分:0)
在尝试了一些新方向后,我收到了新的错误详情。 我收到的最后一个错误+你可以找到它的解决方案 here