Я совершил небольшую ошибку. Тип контента был закодирован в URL, но я отправлял данные JSON. Спасибо @ADyson, который идентифицировал isue.
Вот правильный код.
var data = this.state;
var bodyData =
"username=" +
data.username +
"&password=" +
data.password +
"&grant_type=password";
const response = axios({
url: "http://localhost:56885/Token",
method: "post",
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
},
data: bodyData
});
console.log(response);
В паттерне MVC у вас есть обязанности, разделенные между 3 игроками: Модель, Вид и Контроллер.
Модель отвечает за работу с бизнесом, представление представляет результаты бизнеса (предоставляя также ввод информации для бизнеса от пользователя), в то время как контроллер действует как связующее звено между моделью и представлением, разделяя внутреннюю работу. друг от друга.
Модель обычно поддерживается базой данных, поэтому у вас есть несколько DAO, обращающихся к ней. Ваш бизнес делает некоторые ... ну ... дела и хранит или получает данные в / из базы данных.
Но кто координирует DAO? Контроллер? Нет! Модель должна.
Войдите в сервисный уровень. Уровень обслуживания обеспечит высокий уровень обслуживания контроллера и будет управлять другими (более низкого уровня) игроками (DAO, другими службами и т. Д.) За кулисами. Он содержит бизнес-логику вашего приложения.
Что произойдет, если вы им не воспользуетесь?
Вы должны будете поместить бизнес-логику куда-нибудь, а жертва, как правило, контролер.
Если контроллер является веб-ориентированным, он должен будет получать свои входные данные и предоставлять ответ в виде HTTP-запросов, ответов. Но что если я захочу вызвать свое приложение (и получить доступ к бизнесу, который оно предоставляет) из приложения Windows, которое взаимодействует с RPC или каким-либо другим способом? Что тогда?
Что ж, вам придется переписать контроллер и сделать логический клиент независимым. Но с сервисным уровнем у вас уже есть это. Тебе не нужно переписывать вещи.
Сервисный уровень обеспечивает связь с DTO, которые не привязаны к конкретной реализации контроллера. Если контроллер (независимо от того, какой тип контроллера) предоставляет соответствующие данные (независимо от источника), ваш уровень обслуживания выполнит свою задачу, предоставляя вызывающей стороне услугу и скрывая ее от всех обязанностей соответствующей бизнес-логики.