为什么在尝试使用 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);
}
);
测试结果
我现在正在学习 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);
}
);
测试结果