AngularJS:如何查看API的发布结果

时间:2015-05-07 16:37:50

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

我是AngularJS的新手,并且设置了一个基本应用程序,其前端使用web api与数据库进行交互。

我正在尝试创建一个登录屏幕,所以我将其作为我的控制器,

app.controller('loginController', function ($scope, loginService) {

    $scope.authenticateLogin = function () {

        // get record
        var user = {
            Username: $scope.username,
            Password: $scope.password
        };


        var promisePost = loginService.post(user);
        promisePost.then(function (result) {
            var res = result.data;
            //TODO: set permissions
        },
            function (errorResult) {
                console.log("Unable to log in. :" + errorResult);
            });
    }
});

指向我服务的链接

app.service('loginService', function ($http) {

    this.post = function (user) {
        return $http.post(toApiUrl('login'), user);
    }

    function toApiUrl(actionUrl) {
        return appBaseApiUrl + actionUrl;
    }
});

然后链接到我的API,

public class LoginController : ApiController
{
    // POST api/login
    public void Post(UserLogin user)
    {

        if (ModelState.IsValid)
        {
//checks if valid
        }
    }

问题在于,无论API中发生了什么授权,结果总是为空,因为我正在发帖,所以我无法发回数据。

Angular有办法解决这个问题吗?感谢。

1 个答案:

答案 0 :(得分:0)

我认为你应该在你的Controller上做类似下面的事情,然后看看Angular中的响应。

    [HttpPost]
    public IHttpActionResult Authorize(User user)
    {
        var superAwesomeUserChecker = new SuperAwesomeUserChecker();
        var result = superAwesomeUserChecker.Check(user);
        if (result.IsAuthorized)
        {
            return Ok(result);
        }
        else
        {
            return Unauthorized(result);
        }
    }

您实际上不必返回内容,您只需返回Ok()Unauthorized()即可。这取决于整体身份验证过程的工作方式。