¿Qué es jsonp? Es un json dentro de una función para recoger información de otros dominios para trabajar con ello.
¿Para que se usa? La tecnología Ajax tiene sus limitaciones, una de ellas es el no poder hacer llamadas a otro servidor que no sea el suyo propio, para suplantar esta falta utilizaremos jsonp.
¿Cómo funciona? Trata de añadir un tag del tipo SCRIPT a nuestro HTML y cargar en el src el script del otro dominio. Al cargarse el script se ejecutará la función correspondiente.
Un ejemplo muy simple:
Nuestro HTML:
<!DOCTYPE html>
<html>
<head>
<title>jsonp example</title>
<script type="text/javascript">
window.onload = function()
{
jsonp('http://otrodominio.com/jsonp.php');
};
function jsonp_callback(res)
{
if(console)
console.log(res);
}
function jsonp(url)
{
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
}
</script>
</head>
<body>
</body>
</html>
http://otrodominio.com/jsonp.php
<?php
header("Content-Type: application/json");
$json = 'jsonp_callback(';
$json .= "{'result' : 'ejemplo jsonp :)'}";
$json .= ');';
echo $json;
?>
Como vemos en el fichero jsonp.php ponemos como función jsonp_callback(php) y dentro introduciremos el json que queramos tratar mediante javascript, en el cuál tendremos la función jsonp_callback(js) que se ejecutará nada más cargarse el script.

