Foros del Web » Programando para Internet » Jquery »

ajax cross domain

Estas en el tema de ajax cross domain en el foro de Jquery en Foros del Web. Hola: Quería hacer una llamada ajax utilizando jquery a un dominio externo y he utilizado la siguiente función: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original ...
  #1 (permalink)  
Antiguo 23/07/2012, 15:53
boli-sp
Invitado
 
Mensajes: n/a
Puntos:
ajax cross domain

Hola:
Quería hacer una llamada ajax utilizando jquery a un dominio externo y he utilizado la siguiente función:

Código Javascript:
Ver original
  1. $.ajax({
  2.     url: 'http://paginaweb.com/directorio/script.php',
  3.     type:'GET',
  4.     async: true,
  5.     crossDomain: true,
  6.     success: CargaOK,
  7.     error: CargaError
  8. });

Dentro del propio dominio lo haría de esta forma, sin la línea de crossDomain: true. Pero para un dominio externo, no me funciona.

script.php devuelve un String. CargaOK y CargaError son funciones que están definidas.

¿alguna ayuda?
gracias!
  #2 (permalink)  
Antiguo 24/07/2012, 03:32
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 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

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:48.