2
respostas

Duvida sobre o envio de informações usando o método POST

Estou utilizando o JSON Server para teste em um projeto. Criei um objeto javascript que tem como conteúdo outros objetos, similar ao do código abaixo.

aluno = {
    "nomeAluno": "Mayki",
    "materia1":{"Ano1Med": "9.0", "Ano2Med": "9.38", "Ano2Med": "8.27", "Disciplina": "Matématica"},
    "materia2":{"Ano1Med": "9.0", "Ano2Med": "9.38", "Ano2Med": "8.27", "Disciplina": "Qruimica"},
}

Realizo o envio do objeto para o servidor utilizando método POST

$.post('http://localhost:3000/alunos',aluno);

Porem o conteúdo que é salvo no meu servidor é um único objeto com todas as informações em vez de objetos agrupados.

{
    "nomeAluno": "Mayki",
    "materia1[Ano1Med]": "9.0",
    "materia1[Ano2Med]": "8.27",
    "materia1[Disciplina]": "Matématica",
    "materia2[Ano1Med]": "9.0",
    "materia2[Ano2Med]": "8.27",
    "materia2[Disciplina]": "Qruimica",
    "id": 8
  }

Porque isso está acontecendo? Estou fazendo o envio de forma errada?

2 respostas

Boa tarde, Mayki! Como vai?

Faz um certo tempo que não uso mais o jquery então eu não lembro se ele já faz o parse do objeto JavaScript pra JSON automaticamente no momento da requisição AJAX. Então, veja se fazendo $.post('http://localhost:3000/alunos', JSON.stringify(aluno)) resolve o seu problema.

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

desta forma o post salva todo o conteúdo como uma propriedade vazia.

{
    "{\"nomeAluno\":\"Mayki\",\"materias\":[{\"Ano1Med\":\"9.0\",\"Ano2Med\":\"8.27\",\"Disciplina\":\"Matématica\"},{\"Ano1Med\":\"9.0\",\"Ano2Med\":\"8.27\",\"Disciplina\":\"Qruimica\"}]}": "",
    "id": 12
  }