【问题标题】:AngularJS: How to see post result from APIAngularJS:如何查看 API 的发布结果
【发布时间】:2015-05-08 01:11:36
【问题描述】:

我是 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 中有没有办法处理这个问题?谢谢。

【问题讨论】:

  • 当我使用 Firefox 时,我可以看到 console.log 结果。
  • 您向客户端返回什么类型的响应?您可以查看从您的帖子返回的response.status
  • 另外,我认为您可以从帖子发回数据很重要。
  • 目前还没有真正的回应,但我想使用任何潜在的回应来定义用户角色以及他们可以在网站上看到的内容。从 promisePost 返回的结果只是空的,因为我的 API 方法没有返回任何内容。在这种情况下,您将如何通过帖子发回数据?

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


【解决方案1】:

我认为您应该在控制器上执行以下操作,然后查看 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()。这取决于您的整体身份验证过程的工作方式。

【讨论】:

  • 感谢您的回复。我正在尝试使用此方法,但遇到了问题。当我从该方法返回时,它不会返回到我的 javascript 中的 var res = result.data 行。如果我把这个函数留空,那么它就会出现,所以出了点问题。
猜你喜欢
  • 1970-01-01
  • 2019-01-16
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 2018-05-20
  • 1970-01-01
  • 2017-09-04
  • 2013-04-15
相关资源
最近更新 更多