将复杂对象从angular js传递到web api,它总是返回404

passing complex object to web api from angular js it always return 404

本文关键字:api 返回 web 对象 复杂 angular js      更新时间:2023-09-26

我的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"

我试着关注这个链接从Angular发布到.net WebAPI但是它对我来说是不起作用的。

我想你在这里有一个拼写错误:

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

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