Last active
January 22, 2016 02:37
-
-
Save fmagrosoto/d992d7c8df3b7ec642a5 to your computer and use it in GitHub Desktop.
Uso de JSONP con jQuery
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Se trata de usar una llamada a AJAX a través | |
// de Dominios diferentes (Cross Domain) | |
// y con una petición JSON para extraer información | |
// de una base de datos (por ejemplo MySQL). | |
/** | |
* FUNCIÓN ANÓNIMA PARA HACER LA LLAMADA Y EXTRAER INFORMACIÓN | |
* @author Fernando Magrosoto V. (@fmagrosoto) | |
* @version 1.0 | |
* @returns {void} Sin valores devueltos | |
* / | |
$(function(){ | |
// Llamada a AJAX | |
$.ajax({ | |
type: 'GET', | |
url: '//api.otrodominio.com.mx/registros/', | |
data: { | |
'categoria':'calzado' | |
}, | |
dataType: 'jsonp', // Esta es la configuración y llamada a un JSON Cross Domain | |
crossDomain: true // Ponemos TRUE para hacer que dataType envíe el callback | |
}) | |
// En caso favorable, extraer la información | |
// de la respuesta de AJAX | |
.done( function(respuesta) { | |
var miData = respuesta[0]; // Esta es la información extraída de la base de datos | |
// Recorremos la información | |
$.each(miData, function(x,v) { | |
// x = Valor de la iteración | |
// v = Conjunto de datos por cada iteración | |
// Imprimir en consola el campo TOKEN de cada conjunto de datos | |
console.info( v.token ); | |
}); | |
}) | |
// En caso de error, mostrar el error en la consola | |
.fail( function(error) { | |
console.error( error ); | |
}); | |
}); | |
// EOF |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
## Este es un ejemplo muy básico de un intento de API ## | |
// Conexión a Base de datos y setear el charset a UTF8 | |
require_once 'class_OpenBD.php'; | |
$con = new class_conXion(); | |
$link = $con->getLink(); | |
mysqli_set_charset($link,'utf8'); | |
// Recuperar el valor GET enviado desde AJAX | |
$categoria = filter_input(INPUT_GET, 'categoria',FILTER_VALIDATE_INT); | |
// Hacer un query de MySQL | |
$query = "SELECT token,producto,cantidad FROM tabla_de_productos WHERE categoria = '$categoria' "; | |
$result = mysqli_query($link, $query) or die(mysqli_error($link)); | |
// Array vacío para popularlo después | |
$salida = array(); | |
$i = 0; // Iteración | |
while($data = mysqli_fetch_assoc($result)): | |
$salida[$i] = $data; // Ponemos los datos en cada elemento del array | |
$i++; // Incrementamos la iteración | |
endwhile; | |
// Encabezado para indicarle que se trata de un JSON | |
header('Content-Type: application/json'); | |
echo $_GET['callback']."([".json_encode($salida)."])"; | |
// Usamos $_GET['callback'] que mandó jQUERY con la propiedad dataType | |
// y la tenemos que usar para devolver los datos. | |
// En realidad, ese es el todo el "chiste" del JSONP: enviar y devolver un callback | |
// EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment