2015-05-07 3 views
0

Я новичок в AngularJS и есть основное приложение установить с передним концом, который использует веб-интерфейс API для взаимодействия с базой данных.AngularJS: Как увидеть пост результата из 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, и s ince Я делаю сообщение, я не могу отправить данные назад.

Есть ли способ в Угловом справиться с этим? Благодарю.

+0

Когда я использовал Firefox я могу видеть console.log результаты. – ErasmoOliveira

+0

Какой ответ вы отдаете стороне клиента? Вы можете проверить «response.status», который был получен из вашего сообщения. – Chris

+0

Кроме того, я думаю, что важно сказать, что вы * можете * отправить данные с поста. – Chris

ответ

0

Я думаю, что вы должны делать что-то вроде следующих на контроллере, а затем взглянуть на ответ в Угловом.

[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(). Это зависит от того, как работает ваш общий процесс аутентификации.

+0

Спасибо за ответ. Я пытаюсь использовать этот метод, но сталкиваюсь с проблемой. Когда я вернусь из метода, он не вернется к строке var res = result.data в моем javascript. Если я оставлю эту функцию пустой, значит, что-то не так. – user3407039

+0

Можете ли вы обновить свой код, чтобы показать, что вы пробовали? – Chris

Смежные вопросы