我在Angular 5应用程序上得到了这个奇怪的输出。 我有一个表单,我可以从新用户插入数据。当我提交表单时,我希望它将相同的数据保存到数据库中。在提交时,Angular会抛出一个关于“解析JSON”的错误,但是,来自服务器的状态和消息是一个成功的消息,它实际上插入了没有任何缺陷的数据。
我检查了JSON输出,检查了标题(内容类型:application / json),一切都应该是......并且找不到这种行为的原因。
我得到的错误就是这个:
component.ts
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");
}