Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Vanilla Javascript - #48 Api Fetch com e sem JSON e com FormData

25/05/2021

Nesse tutorial vou explicar como utilizar a API Fetch do Javascript tendo como requisição e resposta o JSON ou application/x-www-form-urlencoded.

Antes de mais nada vamos criar três arquivos, sendo eles:
- index.html
- javascript.js
- ProcessaController.php

index.html

Como o arquivo index.html será o mesmo tanto para a requisição com json quanto para a requisição sem json, já vamos deixá-lo pronto. Não podemos esquecer de criar uma div para receber o resultado e de linkar o script javascript.

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div class="result"></div>

    <script src="javascript.js"></script>
</body>
</html>

API Fetch com JSON

Para utilizar a API Fetch com json, precisamos setar o header e utilizar a função JSON.stringify na requisição. Como vamos usar o PHP no backend vamos receber os dados com file_get_contents e retorná-lo com json_encode.

javascript.js

async function withJson()
{
    let reqs = await fetch ('./ProcessaController.php',{
        method:'POST',
        headers:{
            'Content-Type':'application/json',
            'Accept':'application/json'
        },
        body: JSON.stringify({
            campo: 'Thiago'
        })
    });
    let ress = await reqs.json();
    doc.querySelector('.result').innerHTML = ress;
}
withJson();

ProcessaController.php

<?php
$json=json_decode(file_get_contents('php://input'));
echo json_encode('O usuário '.$json->campo.' logou!');

API Fetch sem uso do JSON

Neste caso vamos utilizar o enctype application/x-www-form-urlencoded e vamos receber os dados no PHP normalmente através do $_POST.

javascript.js

async function withoutJson()
{
    let reqs = await fetch ('./ProcessaController.php',{
        method:'POST',
        headers:{
            'Content-Type':'application/x-www-form-urlencoded',
            'Accept':'application/x-www-form-urlencoded'
        },
        body: 'campo=Thiago'
    });
    let ress=await reqs.text();
    doc.querySelector('.result').innerHTML = ress;
}
withoutJson();

ProcessaController.php

<?php
echo 'O usuário '.$_POST['campo'].' logou!';

API Fetch com FormData

Podemos também enviar todos os dados do formulário, inclusive arquivos multipart/form-data através do ajax e do construtor FormData. Para isso, vamos precisar mudar um pouco o HTML para receber um formulário:

index.html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div class="result"></div>
<div>
    <form name="form" id="form" method="post" action="ProcessaController.php">
        <input type="text" name="nome" id="nome" placeholder="nome"><br>
        <input type="text" name="cpf" id="cpf" placeholder="cpf:"><br>
        <input type="submit" id="btnSubmit" value="Enviar">
    </form>
</div>

<script src="javascript.js"></script>
</body>
</html>

javascript.js

async function withFormData(e)
{
    e.preventDefault();
    let formData=new FormData(document.querySelector('#form'));
    let reqs = await fetch ('./ProcessaController.php',{
        method:'POST',
        body: formData
    });
    let ress=await reqs.text();
    document.querySelector('.result').innerHTML = ress;
}
if(document.querySelector('#btnSubmit')){
    let btnSubmit=document.querySelector('#btnSubmit');
    btnSubmit.addEventListener('click',(e)=>withFormData(e),false);
}

ProcessaController.php

<?php
echo $_POST['nome'].' e tem o cpf '.$_POST['cpf'];

Então é isso pessoal, por hoje é só! Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Vanilla Javascript - #47 Otimizando HTML, CSS e JS
Nesse tutorial vamos aprender uma forma de otimizar nosso html, nosso css e nosso javascript, deixando o código menor e menos exposto.
Saiba mais!
Colorir Mapa ao Passar o Mouse
Nesse tutorial ensinaremos como utilizar um mouse no website que ao passar o mouse em cima ele colora o estado relativo.
Saiba mais!
Javascript
Ensinaremos durante as aulas a codificação desta importante linguagem de programação.
Saiba mais!