Neste artigo você vai aprender o que é JSONP e como esta estrutura de dados funciona, como também quando ela é utilizada

O que é JSONP capa

Fala programador(a), beleza? Bora aprender mais sobre JavaScript e JSONP!

O JSONP (JSON with padding – JSON com padding) é uma estrutura que tem como objetivo acabar com a limitação de AJAX nos navegadores

O problema é conhecido como CORS (Cross-Origin Resource Sharing), e ocorre quando um determinado domínio tenta fazer uma requisição Ajax para outro

A ideia é utilizar a tag script para receber os dados de uma determinada URL na execução de uma função, é aí que é gerado o padding

Como funciona?

Vamos imaginar que precisamos de dados de um usuário, então vamos fazer uma requisição para uma url chamada: https://algumsite.com/getuser?id=10

Então estamos solicitando os dados do usuário com id de 10

Os dados vem em JSON, e são estes:

{"nome": "Matheus", "idade": 30}

Porém desta maneira vamos enfrentar o problema de CORS, então vamos lidar com esta situação com JSONP

A ideia é passar um outro argumento para a URL que vai ativar uma função e liberar o uso do JSONP

Então a nossa abordagem será:

 <script type="text/javascript"
         src="https://algumsite.com/getuser?id=10&jsonp=getData">
 </script>

Vejam que um último argumento foi inserido, jsonp=getData

Então a resposta que receberemos será algo como:

getData({"nome": "Matheus", "idade": 30});

O que é um JavaScript válido e pode ser utilizado em nosso software

E justamente esta função getData é o padding ou espaçamento, para validar o uso do JSONP

Conclusão

Neste artigo você aprendeu o que é JSONP e também como ele é utilizado para resolver o problema de CORS

Você deve confiar 100% na fonte onde está utilizando o JSONP, se não pode estar executando códigos mal intencionados

Pois consumir dados e até mesmo código de quem você não confia não é muito interessante 🙂

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Subscribe
Notify of
guest

0 Comentários
Inline Feedbacks
View all comments