Мне не удается получить запрос, содержащий JSON на стороне сервера. Почему-то имя пользователя и пароль не отображаются должным образом на объект User.
Итак, мой вопрос: что я делаю не так и как это исправить?
вот модель:
public class User
{
public string username { get; set; }
public string password { get; set; }
}
У меня есть базовое действие для входа в мой контроллер api, получающий запрос:
[AllowAnonymous]
[HttpPost("[action]")]
public ActionResult Login([FromBody] User user)
{
if (user.username == null || user.password == null)
return StatusCode(400);
string result = _tokenHelper.GenerateToken(user.username);
return new JsonResult(result);
}
и сервис Angular 2, отправляющий запрос
import { Injectable } from '@angular/core';
import { /*HTTP_PROVIDERS, */ Headers } from '@angular/http';
import { AuthHttp } from 'angular2-jwt';
@Injectable()
export class AuthenticationService {
jwtToken: any;
constructor(public authHttp: AuthHttp) { }
//jwtHeader = new Headers({
// "Content-Type": "application/json",
// "alg": "HS256",
// "typ": "JWT"
//});
Login(username: string, password: string) {
this.authHttp.post('/api/login',
JSON.stringify({
"username:": username,
"password:": password
})
//,{ headers: this.jwtHeader }
).subscribe(data => this.jwtToken = data,
() => console.log(this.jwtToken));
return this.jwtToken;
}
РЕДАКТИРОВАТЬ 1:
Я отладил программу, и нулевой объект User получает действие на сервере, хотя я вижу, что запрос имеет более или менее правильное тело. Только параметры расположены в неправильном порядке, пароль по неизвестной причине стоит первым.