Это очень конкретная c проблема, и, вероятно, ее трудно описать / понять. Я не знаю, сколько нужно ввода, поэтому сначала я опишу всю свою архитектуру: сейчас я программирую свою первую микросервисную архитектуру, использую nodejs, фреймворк express, рули для пользовательского интерфейса и http-proxy-middleware для создания сеть.
Каждая служба запускается с произвольного порта. Затем сервисы регистрируются на API-шлюзе. Шлюз api-gateway направляет URL-адреса, такие как «/ api / web / [service] / [rest]», на «localhost: [serviceport] / [rest]» (это означает, что шлюз webapi направляет запрос / [rest] к службе на зарегистрированном сервисном порту ". Чтобы запустить весь интерфейс на обычном порту 80, я создал прокси-сервер, который перенаправляет все запросы, начиная с" / api ", на предыдущий определенный шлюз. Для обоих этих перенаправлений я использую http- proxy-middleware:
this.app.use(rewritePath,
this.proxy({
target: "http://localhost:" + port,
changeOrigin: true,
pathRewrite: (path, req) => {
console.log(path);
var split = path.split("/");
split = split.splice(2, split.length);
split = split.join("/");
if (!split.startsWith("/")) {
split = "/" + split;
}
console.log(path + " to -> localhost:" + port + split);
return split;
}
})
);
Мне не нужны комментарии к этому коду, просто для лучшего понимания. В целом: он работает.
Я использую REST-клиент Insomnia, чтобы протестировать системы. У меня есть служба аутентификации, которая используется для аутентификации пользователя. Я могу передать запрос post "localhost / api / web / auth / login" с параметрами тела
{
"username":"user",
"password":"test"
}
и я я получаю 200 Response, что он работает.
Теперь к моей проблеме: я создал интерфейс, показывающий форму:
<form action="/api/web/auth/login" method="post">
<input name="username" type="text" placeholder="Username" required>
<input name="password" type="password" placeholder="Password" required>
<input type="submit" value="Log in">
</form>
Когда я отправляю форму, служба аутентификации получает запрос , но тело запроса пусто. y Тело запроса пусто при использовании веб-сайта, в то время как оно работает, когда я использую REST-клиент?