Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/07/2012, 03:32
Avatar de dontexplain
dontexplain
 
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 12 años, 6 meses
Puntos: 127
Respuesta: ajax cross domain

crossDomain utiliza JSONP por lo que async debe ser false, el tipo de datos a recibir ha de ser JSONP por lo que

dataType: "jsonp"

el servidor ha de responder con una respuesta JSON válida y además incluir el callback. El callback es un código que se envía junto a la petición, en jquery el código se envía automáticamente mediante ?callback=? donde ? será el código, eso significa que el script php tendrá que dar como salida, además del JSON válido, el callback recibido.

callback(textoJSON)

que en otras palabras es

echo $_GET['callback']."(".$textojson.")";

Por tanto, modifica los parámetros de la petición y da como salida el JSON con el callback.

$.ajax({
url: 'http://paginaweb.com/directorio/script.php',
type:'GET',
async: false,
crossDomain: true,
dataType: "jsonp",
success: CargaOK,
error: CargaError
});

En el lado del servidor, el JSON puede ser simple e incluir sólo una respuesta, porque seguramente no necesites estructurar nada, con un sólo objeto entre { y } basta para incluir la respuesta que querías dar en un principio

[{"0":"la respuesta que quieras va entre las comillas"}]

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor