Quiz

Explique como o JSONP funciona (e como ele não é Ajax)

Topics
JavaScriptNetworkingSecurity
Edit on GitHub

O JSONP (JSON com padding) é um método comumente utilizado para contornar as políticas de domínio cruzado em navegadores web, porque solicitações Ajax da página atual para um domínio de origem cruzada não são permitidas.

O JSONP funciona fazendo uma solicitação a um domínio cross-origin através de uma tag <script> e geralmente com um parâmetro de consulta callback, por exemplo: https://example O?callback=printData. O servidor irá, então, encapsular os dados em uma função chamada printData e enviá-la de volta ao cliente.

<!-- https://mydomain.com -->
<script>
function printData(data) {
console.log(`My name is ${data.name}!`);
}
</script>
<script src="https://example.com?callback=printData"></script>
// Arquivo carregado de https://example.com?callback=printData
printData({ name: 'John Doe' });

O cliente deve ter a função printData no seu escopo global e a função será executada pelo cliente quando a resposta do domínio de origem cruzada for recebida.

O JSONP pode ser inseguro e tem algumas implicações de segurança. Como o JSONP é JavaScript, ele pode fazer tudo o que o JavaScript pode fazer, então você precisa confiar no provedor dos dados JSONP.

Hoje em dia, CORS é a abordagem recomendada, e a JSONP é vista como um hack.

Edit on GitHub