Angular 5 - POST请求抛出解析JSON错误但成功插入数据

时间:2018-06-18 11:51:42

标签: asp.net json angular forms syntax-error

我在Angular 5应用程序上得到了这个奇怪的输出。 我有一个表单,我可以从新用户插入数据。当我提交表单时,我希望它将相同的数据保存到数据库中。在提交时,Angular会抛出一个关于“解析JSON”的错误,但是,来自服务器的状态和消息是一个成功的消息,它实际上插入了没有任何缺陷的数据。

我检查了JSON输出,检查了标题(内容类型:application / json),一切都应该是......并且找不到这种行为的原因。

我得到的错误就是这个:

Error message

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数据是否有效

Valid 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");
    }

0 个答案:

没有答案