Asp.net Angular 5-POST请求抛出解析JSON错误,但成功插入数据
我在Angular 5应用程序上得到了奇怪的输出。 我有一个表单,可以在其中插入新用户的数据。当我提交表单时,我希望它将相同的数据保存到数据库中。在提交时,Angular抛出了一个关于“解析JSON”的错误,但是,来自服务器的状态和消息是一条成功的消息,并且它意外地插入了没有任何缺陷的数据 我已经检查了JSON输出,检查了标题(内容类型:application/JSON),一切都按原样进行了。。。也找不到这种行为的原因 我得到的错误是: 组件技术Asp.net Angular 5-POST请求抛出解析JSON错误,但成功插入数据,asp.net,json,angular,forms,syntax-error,Asp.net,Json,Angular,Forms,Syntax Error,我在Angular 5应用程序上得到了奇怪的输出。 我有一个表单,可以在其中插入新用户的数据。当我提交表单时,我希望它将相同的数据保存到数据库中。在提交时,Angular抛出了一个关于“解析JSON”的错误,但是,来自服务器的状态和消息是一条成功的消息,并且它意外地插入了没有任何缺陷的数据 我已经检查了JSON输出,检查了标题(内容类型:application/JSON),一切都按原样进行了。。。也找不到这种行为的原因 我得到的错误是: 组件技术 submeterFuncion(form: F
submeterFuncion(form: FormGroup){
let result = JSON.stringify(form.value); // Data received from form
const httpOptions = {headers: new HttpHeaders({'Content-Type': 'application/json'})};
return this.http.post(this.url, result, httpOptions)
.subscribe(
success => console.log(success),
err => console.log(err)
);
}
json数据
{"nome":"123","genero":"0","dn":"2018-06-18","cd_nacion":"2","cd_categ":"E","data_admissao":"2018-06-18","funcao_proposta":"123","nif":"123","niss":"123","cc":"123","cd_profis":"ADM"}
我已经检查了json数据是否有效
以前从未遇到过此类错误,StackOverflow的相关帖子也没有帮助。这很奇怪,因为尽管出现了错误,数据还是按照应该的方式存储的。
非常感谢您的帮助
编辑
API代码
[Route("api/send_formulario")]
[EnableCors(policyName: "MyPolicy")]
//[Authorize(Policy = "UtilizadorAPI")]
[HttpPost]
public IActionResult SendFormulario([FromBody] Formulario f)
{
// Abrir conexão á base de dados
FbConnection db = new FbConnection(csb.ToString());
db.Open();
if (f == null)
{
db.Close();
return StatusCode(400, "Campos vazios ou nulos");
}
string nome = f.nome;
string genero = f.genero;
DateTime dn = f.dn;
string cd_nacion = f.cd_nacion;
string cd_categ = f.cd_categ;
DateTime data_admissao = f.data_admissao;
string funcao_proposta = f.funcao_proposta;
string nif = f.nif;
string niss = f.niss;
string cc = f.cc;
string cd_profis = f.cd_profis;
db.Execute(@"INSERT INTO FUNC_FORMULARIO
( NOME,
GENERO,
DN,
NACIONALIDADE,
CAT_PROFISSIONAL,
DATA_ADMISSAO,
FUNCAO_PROPOSTA,
NIF,
NISS,
CC,
PROFISSAO,
ESTADO_FORM )
VALUES
( @nome,
@genero,
@dn,
@cd_nacion,
@cd_categ,
@data_admissao,
@funcao_proposta,
@nif,
@niss,
@cc,
@cd_profis,
0 )", // <-- Definir o estado do pedido de alteração como FALSO
new {
nome,
genero,
dn,
cd_nacion,
cd_categ,
data_admissao,
funcao_proposta,
nif,
niss,
cc,
cd_profis
});
db.Close();
return Ok("Dados inseridos com sucesso");
}
[路由(“api/send_formulario”)]
[EnableCors(保单名称:“MyPolicy”)]
//[授权(Policy=“UtilizadorAPI”)]
[HttpPost]
公共IActionResult SendFormulario([FromBody]Formulario f)
{
//阿布里尔·科内克萨达多基地酒店
FbConnection db=新FbConnection(csb.ToString());
db.Open();
如果(f==null)
{
db.Close();
返回状态代码(400,“Campos vazios ou nulos”);
}
字符串nome=f.nome;
字符串慷慨=f.慷慨;
日期时间dn=f.dn;
字符串cd_nacion=f.cd_nacion;
字符串cd_categ=f.cd_categ;
DateTime data_admissao=f.data_admissao;
字符串funcao_proposta=f.funcao_proposta;
字符串nif=f.nif;
字符串niss=f.niss;
字符串cc=f.cc;
字符串cd_profis=f.cd_profis;
db.Execute(@)插入函数公式
(诺姆,
慷慨,
DN,
民族党,
CAT_专业人士,
数据许可证,
提议的FUNCAO_,
如果,
尼斯,
复写的副本,
PROFISSAO,
ESTADO_表格)
价值观
(@nome,
@慷慨,
@dn,
@cd_nacion,
@cd_categ,
@数据许可证,
@提议的funcao_,
@如果,
@尼斯,
@抄送,
@cd_profis,
“0)”,//显示api代码尽量不要对form.value进行字符串化并发送。@SachilaRanawaka已编辑。检查上面的代码。但我认为api不是问题所在Dados inseridos com successo
不是有效的JSON。尝试发送formdata:让formdata=Object.assign({});formdata=Object.assign(formdata,form.value);