JSONP

Cómo evitar el Cross-domain

archivado en: JavaScript / 26 abril, 2014

Por razones de seguridad, algunos navegadores no permiten realizar peticiones AJAX entre diferentes dominios, es lo que se conoce como el Cross-domain (de los cojones). Una forma de solucionarlo es con JSONP, que funciona de la siguiente manera en su formato más sencillo:

Donde realizas la petición ajax, especificas en el dataType que es un jsonp y defines crossDomain como true.

$.ajax({

type: 'POST',

url: 'laDireccionQueSea.php',

data: { algunaVariable: 'algunDato' },

dataType: "jsonp",

crossDomain: true,

cache:false,

success: function(data){

// Lo que tenga que hacer cuando se reciben los datos

},

error:function(error){

// Lo que tenga que hacer cuando no se reciben los datos

}

});

De esa manera, automáticamente, se añade un parámetro a la petición denominado callback. Es decir, es como si hubiéramos puesto en la URL: 'laDireccionQueSea.php?callback=una ristra de numerakos. Y ya donde envías el jsonp, lo que haces es lanzar una función que contiene el json si te llega ese parámetro. Por ejemplo, en PHP:

public function getDirecciones() {

if ( isset($_REQUEST['callback']) ) {

$callback = $_REQUEST['callback'];

$result = $this->miLibreria->getTodoDirecciones();

echo $callback . '('.json_encode($result).')';

}

}

|| Tags: ,

valoración de los lectores sobre JSONP

  • estrellica valoración positiva
  • estrellica valoración positiva
  • estrellica valoración positiva
  • estrellica valoración positiva
  • estrellica valoración negativa
  • 4 sobre 5 (3 votos)

¿Te ha parecido útil o interesante esta entrada?
dormido, valoración 1 nadapensativo, valoración 2 un poco sonrisa, valoración 3 a medias guiño, valoración 4 bastante aplauso, valoración 5 mucho

Tú opinión es muy importante, gracias por compartirla!

Los comentarios están cerrados.