Сообщение Axios возвращает только пустую строку (реагирует)?

#asp.net #axios

#asp.net #axios

Вопрос:

Я перепробовал все разные синтаксисы, которые смог найти, но это либо 405/415, либо пустая строка. Сеть показывает статус 200 и форму данных: {"name":"test"} :

Спасибо за ваше время!

 const user = {
    name: 'test'
};

axios(
{
    method: 'POST',
    url: `https://localhost:44348/api/user/AddUser`,
    contentType: 'application/json',
    dataType: 'json',
    data: JSON.stringify(user)
})
.then(res => {
    console.log(user); // {name: "test"}
    console.log(res); // {data: "", status: 200, statusText: "", headers: {…}, config: {…}, …}
    console.log(res.data); // empty string
}) 
  

консоль:

 {name: "test"}
{data: "", status: 200, statusText: "", headers: {…}, config: {…}, …}
  

Контроллер (asp.net api):

 [HttpPost]
[Route("AddUser")]
    public void Post1(string obj)
    {
        memory.Add(new User() { Id = Guid.NewGuid().ToString(), UserName = obj, Password = "343454" });
    }
  

Комментарии:

1. В чем ваш вопрос? В вашем коде указано, что вы получаете 200 код ответа и получаете данные.

2. Я получаю пустую строку вместо ‘test’

3. База данных на конце api также получает пустую строку

4. Вы имеете в виду в data ключе возвращаемого объекта? Я думаю, вам придется поделиться большей частью вашего серверного кода

5. да, как вы думаете, что было бы уместно?

Ответ №1:

Контроллер, который возвращает void, выдаст EmptyResult .

Согласно https://learn.microsoft.com/en-us/archive/msdn-magazine/2009/may/extreme-asp-net-dissecting-an-asp-net-mvc-controller.

Журнал выглядит так, как будто он показывает объект ответа axios, что означает, что тело ответа сервера находится в поле данных. Вы можете изменить свой контроллер, чтобы возвращать ActionResult и возвращать ответ следующим образом, который должен возвращать объект user .

 [HttpPost] [Route("AddUser")]
public ActionResult Post1(string obj)
{
   var user = new User() { Id = Guid.NewGuid().ToString(), UserName = obj, Password = "343454" };
   memory.Add(user);
   return Ok(user);
}