Web API - 无法加载资源:服务器响应状态为404

时间:2014-04-23 13:07:53

标签: javascript angularjs asp.net-web-api

我正在使用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控制器,但我找不到它。

谢谢

2 个答案:

答案 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