ccc

JSONP: Para obtener mediante ajax los datos de un json de otro servidor

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script>
function jsonCallback(json){
  console.log(json);
  console.log(json["sites"][0]["siteName"]);
}

$.ajax({
  url: "http://run.plnkr.co/plunks/v8xyYN64V4nqCshgjKms/data-2.json",
  dataType: "jsonp"
});
</script>
Los datos se muestran en la consola

--------------------------------------------

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script>
function mostrarResult(json){
  console.log(json);
}

$.ajax({
  url: "https://api.github.com/users/jeresig",
  dataType: "jsonp",
  jsonpCallback: "mostrarResult"
});
</script>
Los datos los muestra en la consola

-----------------------------------------------------

Algunas veces el otro servidor solo permite rescatar los datos mediante peticiones de CURL, en estos casos sería:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script>
$.getJSON("proxy.php", function(json) {
  console.log(json);
})
</script>
Los datos los muestra en la consola

proxy.php:
<?php
$url = "http://run.plnkr.co/plunks/v8xyYN64V4nqCshgjKms/data-1.json";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec ($ch);
curl_close ($ch);
echo $result;
?>

No hay comentarios:

Publicar un comentario