У меня очень простой контроллер
[AllowAnonymous]
[HttpPost]
[Route("login")]
public IActionResult Login([FromForm]PhotoLoginDto photologin)
{
//doing some stuff here
}
И еще более простой отправитель на стороне клиента:
const requestOptions = {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(photologin)
};
console.log("request");
console.log(requestOptions);
return fetch(config.apiUrl + "/PhotoLogin/login", requestOptions).then(
handleResponse,
handleError
);
Однако после вызова контроллера отправки запроса IActionResult работает нормально, но переменная photologin всегда имеет пустые поля / поля по умолчанию."console.log (requestOptions);"дисплеи:
{method: "POST", headers: {…}, body: "{"Pin":"3","LoginTime":1553604239315,"Photo":"data…ur1DU622EzHVJTtskqJGPzoooqisUBz/s0VJzWpP6E//9k="}"}
body: "{"Pin":"3","LoginTime":1553604239315,"Photo":"adsf"}"
headers: {Content-Type: "application/json"}
method: "POST"
Если я пытаюсь использовать тот же JSON через почтальона (тело / сырье), я получаю тот же результат.Однако он отлично работает как «form-data» или «x-www-form-urlencoded».Я также попытался поместить эти три значения отдельно (не как один объект) с обеих сторон, клиента и сервера в разных конфигурациях.Я заменил «FromForm» на «FromBody» или удалил этот атрибут complitley, но все равно ничего.
Dto реквизиты идентичны отправленным данным.Я разрешаю все источники для CORS.
Если у кого-то из вас возникла подобная проблема, я был бы признателен за небольшую помощь.
EDIT. Also captured response<br/>
body: ReadableStream
locked: true
__proto__: ReadableStream
bodyUsed: true
headers: Headers
__proto__: Headers
ok: false
redirected: false
status: 400
statusText: "Bad Request"
type: "cors"
Это может быть серьезной проблемой с cors, но, как я уже сказал, все настроено так: «разрешить любое происхождение, разрешить любой метод, разрешить любой заголовок, разрешить учетные данные»