1
resposta

Tipos de dados do XMLHttpRequest

Conforme foi visto na aula, o XMLHttpRequest() é o responsável do JS por fazer requisições HTTP.

Segue o código do botão de importar pacientes:

btnImportar.addEventListener("click", function(event){
  event.preventDefault();

  var xhr = new XMLHttpRequest(); // ele é o responsavel do JS por fazer requisições HTTP

  xhr.open("GET", "https://api-pacientes.herokuapp.com/pacient"); // Estou abrindo conexão e pegando os dados do endereço passado

  xhr.addEventListener("load", function(){ // funcão pra escutar quando os dados são carregados
    var erroAjax = document.querySelector("#erroAjax");

    if(xhr.status == 200){
      //console.log(xhr.responseText); // imprimir apenas o texto da resposta
      var resposta = xhr.responseText; //salvando conteudo na variavel resposta
      var pacientes = JSON.parse(resposta); // Converte conteudo JSON em JS
      erroAjax.classList.add("invisivel");

      console.log(pacientes);

      pacientes.forEach(function(paciente){
        adicionarPacienteNaTela(paciente);
      });
    }
    else{
      console.log(xhr.status);
      console.log(xhr.responseText);

      erroAjax.classList.remove("invisivel");
    }

  });

Quando chamo a função "xhr.open" pra pegar os dados dessa api, quais extensões ele aceita? Caso eu queira fazer um arquivo de testes .txt .xml .qrp, Como ficaria esse código?

Utilizar isso como um banco de dados, seria totalmente inviável por questões de segurança, legibilidade e manipulação dessa base, etc. Mas se fosse uma lista de contatos telefonicos, o usuário conseguiria importar todos os dados para tela!

Esse era o teste que eu estava tentando implementar, mas não sei como rodar esse arquivo localmente (na pasta do projeto)!

1 resposta

Olá, Bruno.

O xhr.open só faz chamadas HTTP, disponíveis em um servidor Web. Não é possível ler arquivos locais, por questões de segurança.

Portanto, quem define o formato de dados é o servidor.