为什么在尝试使用 angular 检索数据库信息时出现错误 415?

Why am i getting error 415 when trying to retrieve database information wiht angular?

我现在正在学习 Angular,我正在尝试将 POST 变成 asp.net 核心中的 API。 我去了初创公司并制作了 cors,因为他们给我带来了问题。现在,我的问题是错误 415,我不知道为什么说不支持有效负载对我来说是 0。 我的 API 函数是这样的:

 [HttpPost]
        public IActionResult register([FromBody] RegisterModel registro)
        {
            Cristais cristal = new Cristais { ID = "4", Cristal = "Zombie44" };
            _context.Cristais.Add(cristal);
            _context.SaveChanges();
            Utilizadores utilizador = new Utilizadores();
            utilizador.ID = Guid.NewGuid().ToString();
            utilizador.Comida = 100;
            utilizador.Gold = 1000;
            utilizador.ID_Cristal = "4";
            utilizador.Email = registro.email;
            utilizador.NickName = registro.nickName;
            utilizador.Password = registro.password;
            _context.Utilizadores.Add(utilizador);
            _context.SaveChanges();
            Console.WriteLine(_context.Utilizadores.Where(p=> p.ID_Cristal=="4"));
            return Ok(_context.Utilizadores.ToList());
        }

然后我在 angular 中尝试了我的 post:

registar() {
    console.log(this.utilizador);
    console.log(config.Urlsite);
    this.httpClient.post(config.Urlsite + "Utilizador/register",this.utilizador, {headers: new HttpHeaders({'Content-Type': 'json'})} ).subscribe((resultado)=>{
        console.log(resultado);
    }, (casoErro)=>{
        console.log(casoErro);
    })
  }

utilizador 是一个变量,它以 json 形式包含有关用户的信息,例如:

{ "nickName": "Ricardo", "password": "Zombie33", "email": "aasd@hotmail.com" }

另外,API函数中的registro是3个字符串的模型...

如果我在 postman 中尝试这个,一切顺利..我不明白为什么我不能在 angular 中这样做 感谢所有帮助,谢谢! :)

[编辑] 我只是想把 [EnableCors("StratGameWebSiteAngular")] 在 API 函数上,我收到错误 500.. 我现在迷路了

my problem is an error 415, i don´t know why is saying the payload is not supported

在您的 Angular 客户端代码中,我们可以发现您设置了 {headers: new HttpHeaders({'Content-Type': 'json'})},这导致了问题。

您可以将 Content-Type 设置为 application/json,如下所示。

this.httpClient
  .post(
    config.Urlsite + "Utilizador/register",
    this.utilizador,
    { headers: new HttpHeaders({ "Content-Type": "application/json" }) }
  )
  .subscribe(
    resultado => {
      console.log(resultado);
    },
    casoErro => {
      console.log(casoErro);
    }
  );

测试结果