【问题标题】:passing complex object to web api from angular js it always return 404从角度 js 将复杂对象传递给 web api 它总是返回 404
【发布时间】:2016-09-14 21:13:30
【问题描述】:

我的javascript方法-

visitorApp.controller('LoginController', function ($scope,$http) {
    $scope.submit = function (isValid) {
        if (isValid) {
            var loginModel = {
                UserName: $scope.UserName,
                PassWord: $scope.Password
            };           

        $http.post(
            '/api/VisitorWeb/VerfiyLogin',
            JSON.stringify(loginModel),
            {
                headers: {
                    'Content-Type': 'application/json'
                }
            }
        ).success(function (data) {
            alert("Hi" +data);
            $scope.message = data;
        });


    }
}

});

我的 web api 方法 -

[HttpPost]
        public UserLoginDomainModel VerifyLogin(UserLoginDomainModel loginModel)
        {
            //do some business logic
            return loginModel;
        }

我的 webapiconfig 文件

public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));

            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}"
            );
        }
    }

我收到来自服务器的 404 响应。

"NetworkError: 404 Not Found - http://localhost:43516/api/VisitorWeb/VerfiyLogin"

我试图点击这个链接 POSTing from Angular to .net WebAPI 但有些方法对我不起作用。

【问题讨论】:

  • 是否跨域?
  • 一个愚蠢的问题,但是您的前端和后端在同一个实例和端口上运行?不应该像这样 $http.post(apiHost+ '/api/VisitorWeb/VerfiyLogin' ..
  • @YinGang- 它不是跨域的。一切都在同一个网络项目中
  • @MayK- 它在同一个端口上运行。
  • @MayK- 是否必须在 uri 中提供 localhost 端口,否则将永远无法工作?

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


【解决方案1】:

我认为你这里有一个错字:

 $http.post(
            '/api/VisitorWeb/VerfiyLogin',
            JSON.stringify(loginModel),
            {
                headers: {
                    'Content-Type': 'application/json'
                }
            }

据我所知,您的服务方法名为 VerifyLogin 而不是 VerfiyLogin。

【讨论】:

  • 你明白了,这是问题所在,现在它正在工作。
猜你喜欢
  • 2016-06-12
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2016-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
相关资源
最近更新 更多